From f8db215b31f1b14d89f1a72d83c5a9452931bb66 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sun, 18 Dec 2022 02:03:46 +0100 Subject: [PATCH] Replaces asyncio coroutines with native async Replaces @asyncio.coroutine decorator with async Replaces yield from with await --- Chatbot.py | 68 +++++++++++-------------- General.py | 29 +++++------ Points.py | 49 ++++++++---------- Shitpost.py | 141 ++++++++++++++++++++++------------------------------ 4 files changed, 124 insertions(+), 163 deletions(-) diff --git a/Chatbot.py b/Chatbot.py index dbd389a..dc03b7b 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -1,4 +1,3 @@ -import asyncio import discord from discord.ext import commands import numpy as np @@ -28,17 +27,16 @@ class Chatbot(commands.Cog): #Do stuff when a message comes in: @self.bot.event - @asyncio.coroutine - def on_message(message): + async def on_message(message): if message.author.bot: return #ignore your own messages, Stroop if message.content.strip() == "" or message.content.strip()[0] != '!': #don't respond to a command if message.content.lower() == "nihao": - yield from message.channel.send("kankerlauw") + await message.channel.send("kankerlauw") return if message.content.lower() == "lol": - yield from message.channel.send("laffing aut laut") + await message.channel.send("laffing aut laut") return if self.bot.user.mentioned_in(message) and "@everyone" not in message.content: MENTIONED_RESPONSES = [ @@ -52,32 +50,32 @@ class Chatbot(commands.Cog): MENTIONED_RESPONSES.append("Wat mot je, " + random.choice(self.bot.get_cog("Shitpost").insult) + "?") except: print("ERROR! - Could not import insults") - yield from message.channel.send(random.choice(MENTIONED_RESPONSES)) + await message.channel.send(random.choice(MENTIONED_RESPONSES)) return if re.match("^[0-9]+([,.]?[0-9]+)*?$", message.content.strip()) and random.randint(0,9) == 0: - yield from message.channel.send("That's Numberwang!") # https://www.youtube.com/watch?v=0obMRztklqU + await message.channel.send("That's Numberwang!") # https://www.youtube.com/watch?v=0obMRztklqU return if "DMChannel" in type(message.channel).__name__: #respond to messages in PM channels if (self.isAllowedToLearnFromPm(message)): #avoid spam-learning self.pmCount += 1 self.pmLast = datetime.now() - yield from self.learnFromMessagesInChannel(message.channel, 1) - yield from self.respondToMessage(message) + await self.learnFromMessagesInChannel(message.channel, 1) + await self.respondToMessage(message) elif message.channel.id == self.bot.hdChannels["belangrijk"]: #don't abuse the "belangrijk" channel pass else: a = random.randint(0,999) # probablity if a < 40: - yield from self.learnFromMessagesInChannel(message.channel, 10) + await self.learnFromMessagesInChannel(message.channel, 10) if "stroop" in message.content.lower(): a = a / 20 # significantly increase the chance of responding if somebody talks about him. if message.channel.id == self.bot.hdChannels["shitpost"] and a < 40: #shitpost channel - yield from self.respondToMessage(message) + await self.respondToMessage(message) elif a < 10: #all other channels - yield from self.respondToMessage(message) + await self.respondToMessage(message) #process commands: - yield from self.bot.process_commands(message) + await self.bot.process_commands(message) def __check(self, ctx): return True @@ -183,22 +181,20 @@ class Chatbot(commands.Cog): @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def trainmarkovchat(self, ctx, channelId=409751773595566081, nrOfMessages=50): + async def trainmarkovchat(self, ctx, channelId=409751773595566081, nrOfMessages=50): """Train that chain, jermaine param channelId: use this channel to train param nrOfMessages: use the x most recent messages """ channel=self.bot.get_channel(channelId) - yield from self.learnFromMessagesInChannel(channel, nrOfMessages) + await self.learnFromMessagesInChannel(channel, nrOfMessages) - yield from ctx.channel.send("Ik heb weer wat nieuwe woordjes geleerd. :slight_smile:") + await ctx.channel.send("Ik heb weer wat nieuwe woordjes geleerd. :slight_smile:") #Learns from an x number of messages from a certain channel - @asyncio.coroutine - def learnFromMessagesInChannel(self, channel, nrOfMessages): + async def learnFromMessagesInChannel(self, channel, nrOfMessages): #Open current chain: wordDict = np.load('markov_dict.npy', allow_pickle=True).item() @@ -207,7 +203,7 @@ class Chatbot(commands.Cog): messageIterator = channel.history(limit=nrOfMessages, before=None, after=None, oldest_first=False, around=None) allMessages = [] for i in range(nrOfMessages): - msg = yield from anext(messageIterator) + msg = await anext(messageIterator) allMessages.append(msg) i = 0 @@ -248,18 +244,17 @@ class Chatbot(commands.Cog): @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def reageer(self, ctx): + async def reageer(self, ctx): """Laat Stroop ergens op reageren. Stroop leert van onze gesprekken. Hij kan zich nu voordoen als een van ons. Soort van. """ #Get previous message to respond to messageIterator = ctx.channel.history(limit=3, before=None, after=None, oldest_first=False, around=None) - messageToRespondTo = yield from anext(messageIterator) #this will be the !reageer command. skip - messageToRespondTo = yield from anext(messageIterator) + messageToRespondTo = await anext(messageIterator) #this will be the !reageer command. skip + messageToRespondTo = await anext(messageIterator) if messageToRespondTo.content.strip()[0] == '!' or messageToRespondTo.author.bot: #another chance - messageToRespondTo = yield from anext(messageIterator) #but it's not a huge problem if he responds to himself + messageToRespondTo = await anext(messageIterator) #but it's not a huge problem if he responds to himself if messageToRespondTo.content.strip()[0] == '!': wordsToRespondTo = [] else: @@ -268,12 +263,12 @@ class Chatbot(commands.Cog): #Delete command try: - yield from ctx.message.delete() + await ctx.message.delete() except: pass response = self.getResponseForMessage(wordsToRespondTo) - yield from ctx.channel.send(response) + await ctx.channel.send(response) # Calculate probabilities and pick a next word from a word pair dict: # https://stackoverflow.com/questions/835092/python-dictionary-are-keys-and-values-always-the-same-order @@ -285,12 +280,11 @@ class Chatbot(commands.Cog): #Respond to a message. #Assumes the message isn't a command - @asyncio.coroutine - def respondToMessage(self, message): + async def respondToMessage(self, message): wordsToRespondTo = message.content.strip().split() response = self.getResponseForMessage(wordsToRespondTo) - yield from message.channel.send(response) + await message.channel.send(response) #Gets a response def getResponseForMessage(self, wordsToRespondTo): @@ -351,7 +345,7 @@ class Chatbot(commands.Cog): chain[n] = "@jemoeder" #print(' '.join(chain)) - #yield from ctx.channel.send(' '.join(chain)) + #await ctx.channel.send(' '.join(chain)) return ' '.join(chain) @@ -424,22 +418,20 @@ class Chatbot(commands.Cog): return ' '.join(chain) @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def haiku(self, ctx): + async def haiku(self, ctx): """Stroop is een poëet. Laat hem een Haiku maken. """ response = self.getHaiku() - yield from ctx.channel.send(response) + await ctx.channel.send(response) @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def uitspraak(self, ctx, numPosts=1): + async def uitspraak(self, ctx, numPosts=1): """Random uitspraak uit de hall of fame. Optioneel kan je een nummer meegeven voor meerdere uitspraken 0 voor alle uitspraken.""" try: - yield from ctx.message.delete() + await ctx.message.delete() except: pass try: @@ -451,6 +443,6 @@ class Chatbot(commands.Cog): numPosts = len(uitspraken) for i in range(numPosts): message += uitspraken[i] - yield from ctx.channel.send(message) + await ctx.channel.send(message) except: pass diff --git a/General.py b/General.py index ee9d122..bf6a3b3 100644 --- a/General.py +++ b/General.py @@ -1,4 +1,3 @@ -import asyncio import discord import os import praw @@ -30,18 +29,17 @@ class General(commands.Cog): return embed @commands.command() - @asyncio.coroutine - def huge(self, ctx, *, arg): + async def huge(self, ctx, *, arg): """YUGE. Geeft een grote versie van de gegeven emoji terug. Werkt alleen voor custom emoji. Bijvoorbeeld: !huge :ancilla: """ em = self.get_emoji_embed(arg) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) def get_aww_post(self): raww = self.r.subreddit('aww+catloaf+tuckedinkitties+babyelephantgifs+babybigcatgifs+blep+holdmynip+gingerkitty+cathighfive+catsstandingup+catsareassholes+eyebleach') @@ -49,15 +47,14 @@ class General(commands.Cog): return random.choice(listing) @commands.command(pass_context=True) - @asyncio.coroutine - def aww(self, ctx): + async def aww(self, ctx): """ iets schattigs... """ post = self.get_aww_post() try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") - yield from ctx.channel.send(ctx.author.mention + ' ' + post.url) + await ctx.channel.send(ctx.author.mention + ' ' + post.url) def get_kopieerpasta(self): rkopieerpasta = self.r.subreddit('kopieerpasta') @@ -71,8 +68,7 @@ class General(commands.Cog): return post @commands.command(pass_context=True) - @asyncio.coroutine - def kopieerpasta(self, ctx): + async def kopieerpasta(self, ctx): """Een willekeurige shitpost""" post = self.get_kopieerpasta() print(post.url) @@ -83,23 +79,22 @@ class General(commands.Cog): print(post.url) a += 1 try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if len(post.selftext + post.title) < 1990: - yield from ctx.channel.send('**'+post.title+'**```'+post.selftext+'```') + await ctx.channel.send('**'+post.title+'**```'+post.selftext+'```') else: - yield from ctx.channel.send("Geen kopieerpasta voor jou vandaag.") + await ctx.channel.send("Geen kopieerpasta voor jou vandaag.") def get_playlist_json(self): return requests.get(self.muzak_url + '/stroopwafel') @commands.command(pass_context=True) - @asyncio.coroutine - def playlist(self, ctx): + async def playlist(self, ctx): """HDcon2021 playlist""" data = json.loads(self.get_playlist_json().content) msg = 'Stemmen en nomineren kan hier: {}\n'.format(self.muzak_url) msg += '*Er zijn al {} nummers genomineerd*\n'.format(data['stemCount']) - yield from ctx.channel.send(msg) + await ctx.channel.send(msg) diff --git a/Points.py b/Points.py index 7292e71..6767953 100644 --- a/Points.py +++ b/Points.py @@ -1,4 +1,3 @@ -import asyncio import discord from discord.ext import commands from pprint import pprint @@ -25,8 +24,7 @@ class Points(commands.Cog): return True @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def geefpunten(self, ctx, user, points: int): + async def geefpunten(self, ctx, user, points: int): """Wees eens lief. Geef iemand wat punten. Bijvoorbeeld: !geefpunten @ikbenjp 42 @@ -37,29 +35,29 @@ class Points(commands.Cog): self.reloadPointsCount() if points == 0: - yield from ctx.channel.send("0 punten? Gul hoor.") + await ctx.channel.send("0 punten? Gul hoor.") return if points < 0: - yield from self.sendErrorDm(ctx, "Daar hebben we de !neempunten functie voor. Voor meer info typ: ```!help neempunten```") + await self.sendErrorDm(ctx, "Daar hebben we de !neempunten functie voor. Voor meer info typ: ```!help neempunten```") return if user[0:2] != "<@": - yield from self.sendErrorDm(ctx, "Je moet iemand taggen om punten te geven. :)") + await self.sendErrorDm(ctx, "Je moet iemand taggen om punten te geven. :)") #TODO ook userId oid toestaan? return userObj = ctx.message.mentions[0] if userObj.id == ctx.author.id: - yield from ctx.channel.send("Nee. Je mag niet jezelf punten geven.") + await ctx.channel.send("Nee. Je mag niet jezelf punten geven.") time.sleep(0.6) - yield from ctx.channel.send("Gekkie.") + await ctx.channel.send("Gekkie.") return if not self.isUserOnList(userObj): - yield from ctx.channel.send("Nee. Die krijgt geen punten.") + await ctx.channel.send("Nee. Die krijgt geen punten.") return if self.getUserBalance(ctx.author) < points: - yield from ctx.channel.send("Daar heb jij niet genoeg puntjes voor. :bell:") + await ctx.channel.send("Daar heb jij niet genoeg puntjes voor. :bell:") return # Execute the transaction: @@ -68,7 +66,7 @@ class Points(commands.Cog): self.savePointsCount() message = self.getMessageForAwardingPoints(ctx.author.name, userObj.name, points) - yield from ctx.channel.send(message) + await ctx.channel.send(message) def execute_geefpunten(self, giverId, recieverId, points): # First, try to give away (at most 10) bankpoints @@ -86,8 +84,7 @@ class Points(commands.Cog): @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def neempunten(self, ctx, user, points: int): + async def neempunten(self, ctx, user, points: int): """Tijd om iemand the shamen. Haal wat punten weg. Bijvoorbeeld: !neempunten @mark 5 @@ -98,27 +95,27 @@ class Points(commands.Cog): self.reloadPointsCount() if points < 1: - yield from ctx.channel.send("Volgens mij snap je het niet.") + await ctx.channel.send("Volgens mij snap je het niet.") return if points > 10: - yield from self.sendErrorDm(ctx, "Je mag niet meer dan 10 punten afnemen.") + await self.sendErrorDm(ctx, "Je mag niet meer dan 10 punten afnemen.") return remainingToTakeAway = self.getUsersRemainingPointsToTakeToday(ctx.author.id) if points > remainingToTakeAway: # The limit per day is 10 - yield from self.sendErrorDm(ctx, "Je mag vandaag nog maar " + str(remainingToTakeAway) + " punten wegnemen.") + await self.sendErrorDm(ctx, "Je mag vandaag nog maar " + str(remainingToTakeAway) + " punten wegnemen.") return if user[0:2] != "<@": - yield from self.sendErrorDm(ctx, "Je moet iemand taggen. :)") + await self.sendErrorDm(ctx, "Je moet iemand taggen. :)") return userObj = ctx.message.mentions[0] if not self.isUserOnList(userObj): - yield from ctx.channel.send("Nee.") + await ctx.channel.send("Nee.") return if self.getUserBalance(userObj) < points: - yield from ctx.channel.send(userObj.name + " mag niet rood staan.") + await ctx.channel.send(userObj.name + " mag niet rood staan.") return # Execute the transaction: @@ -127,7 +124,7 @@ class Points(commands.Cog): self.savePointsCount() message = self.getMessageForTakingPoints(userObj.name, ctx.author.name, points) - yield from ctx.channel.send(message) + await ctx.channel.send(message) def execute_neempunten(self, takerId, victimId, points): self.increaseUsersPointTakenOnDate(takerId, points) @@ -135,8 +132,7 @@ class Points(commands.Cog): @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def puntentelling(self, ctx): + async def puntentelling(self, ctx): """Hoeveel punten heeft iedereen? """ @@ -148,18 +144,17 @@ class Points(commands.Cog): if user[0] != self.BANK_ID: message += str(user[1]["points"]).rjust(4) + " " + user[1]["name"] + "\n" message += str(self.pointsCount[self.BANK_ID]["points"]).rjust(4) + " " + self.pointsCount[self.BANK_ID]["name"] + "```" - yield from ctx.channel.send(message) + await ctx.channel.send(message) # No public shaming. Send somebody a direct correction message. - @asyncio.coroutine - def sendErrorDm(self, ctx, message): + async def sendErrorDm(self, ctx, message): try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") try: - yield from ctx.message.author.send(message) + await ctx.message.author.send(message) except: print("No permission to send DM") diff --git a/Shitpost.py b/Shitpost.py index 962b630..cd4c968 100644 --- a/Shitpost.py +++ b/Shitpost.py @@ -1,4 +1,3 @@ -import asyncio import discord from discord.ext import commands from urllib import request @@ -43,8 +42,7 @@ class Shitpost(commands.Cog): warnings.simplefilter("ignore") @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def ishetalhdcon(self, ctx): + async def ishetalhdcon(self, ctx): """Hoe lang nog tot Hoestende Draken Con 2022? Gebruik: !ishetalhdcon """ @@ -61,7 +59,7 @@ class Shitpost(commands.Cog): Message = "HD Con 2022 is vandaag alweer afgelopen... F" if Distance.days < 0: - yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message)) + await ctx.channel.send(ctx.author.mention + ' ' + str(Message)) return NachtjesSlapen = Distance.days + 1 @@ -90,23 +88,23 @@ class Shitpost(commands.Cog): return #fuck it. if eventsMinutesAgoSameAuthor > 0: if eventsMinutesAgoSameAuthor > 2: - yield from ctx.channel.send("...") + await ctx.channel.send("...") return - yield from ctx.channel.send("Dat vroeg je net ook al, " + ctx.author.mention + "!") + await ctx.channel.send("Dat vroeg je net ook al, " + ctx.author.mention + "!") return #Hoe vaker er wordt gevraagd, hoe ongeduldiger de antwoorden: if not "DMChannel" in type(ctx.channel).__name__: #ignore personal chats impatientFactor = 10 + eventsMinutesAgo*25 + eventsLastDays*10; impatientFactor *= random.random() if impatientFactor > 100: - yield from ctx.channel.send("Nee!") + await ctx.channel.send("Nee!") return elif impatientFactor > 15 and eventsMinutesAgo > 0: Message = "Dat hebben jullie net gevraagd." elif impatientFactor > 9: Message = "Nee." - yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message)) + await ctx.channel.send(ctx.author.mention + ' ' + str(Message)) def zalgofy(self, sentence, factor = 4): random.seed(datetime.now().timestamp()) @@ -119,8 +117,7 @@ class Shitpost(commands.Cog): return message @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def zalgo(self, ctx, *, arg): + async def zalgo(self, ctx, *, arg): """z̴̬̘͇̗͇̦̤̩̜͜ą̷̟̯̪̩̣̭̭͇̹l̴̗͓̟̠̤̳̗͉̠ͅg̵̜͎̪̞̫͎͈͉͉͍o̵̧̧͇̱̱̜̮͉͉̳ ̴̨̡͖̘̪̭̖͖̘̝h̸̭̰̫̲̺̹̻̜͕ͅe̴̢̘̪̱̱̩̠̣̘̱ ̴̡̢̲̞̙̝̮̻̻͇c̶̡̢̺͙̮̗̲̹̱̱o̷̢̡̺̘͈͎̫̬͔̤m̷͕͍͍̥͖̻̲̞̝ͅe̷̱̟͕̥͕̞̜̫̳̙s̷̨͍̼̝̙̩̥̰̠ͅ h̷̦̰̣̗̭͕̩͓͈̠i̶̗̰̹̤̖͙̰̹͙̹j̸̧̜̬̬̜̹͔̰̫͜ ̶̧͉͔̠̻͈̜̳̥̭k̸̯̳̠̼̙̗̘̳͜ͅǫ̵̝̱̩͎̫͈̣̪̦m̶̺̙̟̫͔͈̭̖̱ͅt̶̜̠̟͙̞̠̗̗̥ͅ ̸̢̹̜͉͙̩̬̖ͅͅh̷̯̮̘̭͈̜̺͎̳̯i̴̩̯̼̱͇̟̫̻̘̖j̵̪̤̦͖̮̜̦̼̺̮ ̶̧͇̭̞̮̩̼͚̮ͅḵ̴̢̨̢͉͉͖̹̬̺o̵̢̪̥̻͙͕̫̥̗͜m̶̧̡͔̠̺͖̝̳̪ͅt̷̢̮̭̜̥̠̼̫͍̯ d̷̢̪͍͓̭̣̼̠͎̠e̴̡̢̩̱͙̻̥̯͎͜ ̵̲̪͖̖͖͍͈͎̮̼ļ̴̯̗̝̦͍͍͖̰͜i̶̡̘̟̳̖͙͕͔̺͜ȩ̸̤͎̣͖͔̭͔̫̯v̷͔̺͖̖̞̙̘̖̠͓e̶̲͍̮̳͎̗̳̞̹͔ ̸̡̬̫͎͎̝͍̤̯ͅg̴̨̞̻͙̠̰͖͖̝ͅǫ̴̘̥͇̙̖͈͍̹̥e̵̥͇̫̱̬̝̥̲̞̜d̷͈͙̝͍͔̘͕̼̜̦e̴̡̯̦͉͙̪̭͕̻̝ @@ -130,10 +127,10 @@ class Shitpost(commands.Cog): """ message = self.zalgofy(arg) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") - yield from ctx.channel.send(str(message)) + await ctx.channel.send(str(message)) def get_corona_message(self): response = requests.get('https://covid.ourworldindata.org/data/latest/owid-covid-latest.json') @@ -151,18 +148,16 @@ class Shitpost(commands.Cog): return None @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def corona(self, ctx): + async def corona(self, ctx): try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") message = self.get_corona_message() - yield from ctx.channel.send(ctx.author.mention + ' ' + str(message)) + await ctx.channel.send(ctx.author.mention + ' ' + str(message)) @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def viertwintig(self, ctx): + async def viertwintig(self, ctx): """Hoe lang nog tot 420? Gebruik: !viertwintig """ @@ -188,11 +183,10 @@ class Shitpost(commands.Cog): seconds = secondsLeft - minutes * 60 Message += "Nog " + str(days) + " dagen, " + str(hours) + " uur, " + str(minutes) + " minuten en " + str(seconds) + " seconden tot 420!!" - yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message)) + await ctx.channel.send(ctx.author.mention + ' ' + str(Message)) @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def iselderscrolls6aluit(self, ctx): + async def iselderscrolls6aluit(self, ctx): """Hoe lang nog tot Elder Scrolls 6? 11-11-11? 20-20-20? Gebruik: !iselderscrolls6aluit """ @@ -203,15 +197,14 @@ class Shitpost(commands.Cog): else: Message = "Nee. :frowning2: Nog even geduld..." - yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message)) + await ctx.channel.send(ctx.author.mention + ' ' + str(Message)) def get_giet_het_oan(self): # Alsof we ooit nog een elfstedentocht gaan krijgen. return "nee" @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def giethetaloan(self, ctx): + async def giethetaloan(self, ctx): """Giet het al oan? Ja of Nee.. kom op nou. """ @@ -225,7 +218,7 @@ class Shitpost(commands.Cog): else: if 'nee' in answer: reactie += 'Nee helaas..' - yield from ctx.channel.send(ctx.author.mention + ' ' + reactie) + await ctx.channel.send(ctx.author.mention + ' ' + reactie) def get_inspiration(self): inspiration = requests.get(url='http://inspirobot.me/api?generate=true') @@ -235,8 +228,7 @@ class Shitpost(commands.Cog): @commands.command(pass_context=True, hidden=False) - @asyncio.coroutine - def inspire(self, ctx): + async def inspire(self, ctx): """Laat je inspireren Bijvoorbeeld: !inspire @@ -246,12 +238,12 @@ class Shitpost(commands.Cog): em = discord.Embed(title='Uw wijze woorden:', type='photo') em.set_image(url=inspo) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) else: - yield from ctx.channel.send(ctx.author.mention + ' helaas, geen quote gevonden.') + await ctx.channel.send(ctx.author.mention + ' helaas, geen quote gevonden.') def get_imgflip_embed(self, template: str, boven: str, onder: str, extra_options: dict = None): params = dict( @@ -273,49 +265,46 @@ class Shitpost(commands.Cog): @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def tering(self, ctx, boven: str, onder: str): + async def tering(self, ctx, boven: str, onder: str): """Vanavond gaan we helemaal naar de tering Bijvoorbeeld: !tering \"Vanavond\" \"gaan we helemaal naar de tering\" """ em = self.get_imgflip_embed(self.imgflips['tering'], boven, onder) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if em: - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def mark(self, ctx, boven: str, onder: str): + async def mark(self, ctx, boven: str, onder: str): """Maakt een mark meem. Bijvoorbeeld: !mark \"je moeder\" \"is een hoer\" """ em = self.get_imgflip_embed(self.imgflips['mark'], boven, onder) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if em: - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def eriku(self, ctx, boven: str, onder: str): + async def eriku(self, ctx, boven: str, onder: str): """Maakt een erik meem. Bijvoorbeeld: !eriku \"je moeder\" \"is een hoer\" """ em = self.get_imgflip_embed(self.imgflips['eriku'], boven, onder) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if em: - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) def get_tegeltje(self, tekst, auteur): params = { @@ -341,43 +330,39 @@ class Shitpost(commands.Cog): return self.get_imgflip_embed(self.imgflips['tegeltje'], "", "", params) @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def tegeltje(self, ctx, tekst: str, auteur: str=" "): + async def tegeltje(self, ctx, tekst: str, auteur: str=" "): """Maak een mooi tegeltje met volkswijsheid Bijvoorbeeld: !tegeltje \"Oost west, 420 best\" \"Lourens\" """ em = get_tegeltje(tekst, auteur) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if em: - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def zout(self, ctx, boven: str, onder: str): + async def zout(self, ctx, boven: str, onder: str): """Maakt een martijn-zout meem. Bijvoorbeeld: !zout \"je moeder\" \"is een hoer\" """ em = self.get_imgflip_embed(self.imgflips['zout'], boven, onder) try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if em: - yield from ctx.channel.send(ctx.author.mention, embed=em) + await ctx.channel.send(ctx.author.mention, embed=em) @commands.command(pass_context=True, hidden=True) - @asyncio.coroutine - def nihao(self,ctx): - yield from ctx.channel.send("kankerlauw") + async def nihao(self,ctx): + await ctx.channel.send("kankerlauw") @commands.command(pass_context=True) - @asyncio.coroutine - def tijd(self, ctx, *args): + async def tijd(self, ctx, *args): """Vertelt je hoe laat het is.. Misschien geeft het ook wel een leuke meem terug. Wie weet. @@ -398,13 +383,13 @@ class Shitpost(commands.Cog): elif os.path.isfile(filepng): filepath = filepng try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") if filepath != '': - yield from ctx.channel.send(ctx.author.mention + ' Het is nu ' + datetime.now().strftime('%H:%M'), file=discord.File(filepath, 'tijd.png')) + await ctx.channel.send(ctx.author.mention + ' Het is nu ' + datetime.now().strftime('%H:%M'), file=discord.File(filepath, 'tijd.png')) else: - yield from ctx.channel.send(ctx.author.mention + ' Het is nu ' + datetime.now().strftime('%H:%M')) + await ctx.channel.send(ctx.author.mention + ' Het is nu ' + datetime.now().strftime('%H:%M')) def get_dice_roll(self, nrOfDice, dieType, modifier=None): if nrOfDice > 99 or dieType > 9999 or dieType < 2 or (modifier and abs(modifier) > 9999): @@ -447,8 +432,7 @@ class Shitpost(commands.Cog): return (numDice, die, modifier) @commands.command(pass_context=True) - @asyncio.coroutine - def roll(self, ctx, *, dice): + async def roll(self, ctx, *, dice): """Roll een dobbelsteen. Of een paar. Bijvoorbeeld: !roll 4d20 !roll 1d6 + 5 @@ -456,9 +440,9 @@ class Shitpost(commands.Cog): (nrOfDice, dieType, modifier) = self.get_dice_parameters(dice) message = self.get_dice_roll(nrOfDice, dieType, modifier) if message: - yield from ctx.channel.send(message) + await ctx.channel.send(message) else: - yield from ctx.channel.send("Die roll vind ik echt een beetje te mal..") + await ctx.channel.send("Die roll vind ik echt een beetje te mal..") def get_weerbericht(self, wData, verbose=None): if not wData: @@ -519,8 +503,7 @@ class Shitpost(commands.Cog): return None @commands.command(pass_context=True) - @asyncio.coroutine - def weer(self, ctx, location="Leiden", verbose=None): + async def weer(self, ctx, location="Leiden", verbose=None): """Vertelt je het weer. Omdat je te lui bent om naar buiten te kijken. Oant Moarn! @@ -530,7 +513,7 @@ class Shitpost(commands.Cog): message = self.get_weerbericht(wData, verbose) if not wData or not message: message = "Weer ophalen niet gelukt. Probeer het later nogmaals.." - yield from ctx.channel.send(message) + await ctx.channel.send(message) #returns a nice weather icon. Sometimes the API uses non-documented icons, so we return something else def getWeatherIconTranslation(self, iconKey): @@ -610,27 +593,25 @@ class Shitpost(commands.Cog): return zwarte_kaart.replace("___", "**{}**").format(*wit) @commands.command(pass_context=True) - @asyncio.coroutine - def ktdm(self, ctx, *args): + async def ktdm(self, ctx, *args): '''Speel Kaarten Tegen De Mensheid! Genereer een kaart of geef zelf opties. Bijvoorbeeld: !ktdm <"1"><"2"><"3"> (aanbevolen 1 of 2, max 3)''' try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") resultaat = self.get_ktdm(args) if resultaat: - yield from ctx.channel.send(f"{ctx.author.mention}\n{resultaat}") + await ctx.channel.send(f"{ctx.author.mention}\n{resultaat}") else: - yield from ctx.channel.send(f"{ctx.author.mention}\nIets ging niet helemaal lekker") + await ctx.channel.send(f"{ctx.author.mention}\nIets ging niet helemaal lekker") @commands.command(pass_context=True) - @asyncio.coroutine - def beledig(self, ctx, member:discord.User): + async def beledig(self, ctx, member:discord.User): '''Je vindt iemand stom maar je hebt geen inspiratie? Beledig al je vriendjes met deze handige beledig-i-fier! Bijvoorbeeld: !beledig @jemoeder''' - yield from ctx.channel.send(member.mention+ ", " + ctx.author.mention + " vindt jou een " + random.choice(self.insult) + "! :angry:") - yield from ctx.message.delete() + await ctx.channel.send(member.mention+ ", " + ctx.author.mention + " vindt jou een " + random.choice(self.insult) + "! :angry:") + await ctx.message.delete() def get_watspelenwe_cal(self): """Geeft een paar terug, met de titel en omschrijving van het eerstvolgende event uit de kalender""" @@ -749,8 +730,7 @@ class Shitpost(commands.Cog): return message @commands.command(pass_context=True) - @asyncio.coroutine - def watspelenwe(self, ctx): + async def watspelenwe(self, ctx): """Stroop weet wat we spelen op vrijdag. Geeft elke week een pseudo-random antwoord. Geseed op weeknummer + jaar. @@ -764,10 +744,10 @@ class Shitpost(commands.Cog): message += ". En wilt iemand even aan Mark vragen of hij de kalender bijhoudt?" try: - yield from ctx.message.delete() + await ctx.message.delete() except: print("No permission to delete message") - yield from ctx.channel.send(message) + await ctx.channel.send(message) def get_review_string(self, topic = ""): if topic == "": @@ -819,10 +799,9 @@ class Shitpost(commands.Cog): return message @commands.command(pass_context=True) - @asyncio.coroutine - def review(self, ctx, *args): + async def review(self, ctx, *args): """Stroop heeft (bijna) overal een mening over. Vraag het hem! """ topic = " ".join(args) message = self.get_review_string(topic) - yield from ctx.channel.send(message) + await ctx.channel.send(message)