Compare commits
20 Commits
testing
...
crypto-update
| Author | SHA1 | Date | |
|---|---|---|---|
| e904451037 | |||
| cde205aad7 | |||
| 2e91781fad | |||
| 58ce3a8565 | |||
| cf89809c30 | |||
| 301314bec8 | |||
| a142b299f4 | |||
| a80ac831f0 | |||
| 4f55dd9dd6 | |||
| 2baa32055d | |||
| 08f99b856a | |||
| 23e4a30e14 | |||
| 9e2389b9b0 | |||
| 2d58948e78 | |||
| 1adc2096a0 | |||
| 904f1c48ea | |||
| f8db215b31 | |||
| ad2324d53c | |||
| 1c3318c24c | |||
| 9effd126dd |
+1
-1
@@ -3,7 +3,7 @@ name: default
|
||||
|
||||
steps:
|
||||
- name: test
|
||||
image: python:3.10
|
||||
image: python:3.11
|
||||
environment:
|
||||
STROOP_DISCORD_TOKEN:
|
||||
from_secret: STROOP_DISCORD_TOKEN
|
||||
|
||||
+65
-45
@@ -1,8 +1,10 @@
|
||||
import asyncio
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
import numpy as np
|
||||
import random
|
||||
import requests
|
||||
import asyncio
|
||||
import os
|
||||
from datetime import datetime
|
||||
import re
|
||||
|
||||
@@ -28,17 +30,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 = [
|
||||
@@ -46,38 +47,36 @@ class Chatbot(commands.Cog):
|
||||
"hmm?",
|
||||
"JA WAT?",
|
||||
"Godve...Godver-fucking-domme! Wie de fuck heeft me zojuist gepingt? Wie de fuck heeft de ballen om mij te pingen?! Als ik jou vind hè, ik ram je helemaal de tyfus in. Ik ga je kapot maken. Welke breincel in jouw hoofd dacht dat het grappig was om mij te pingen? Noem jij dat 'grappig'? Ik zal je godverdomme iets laten zien wat grappig is, ja. Ik neuk je moeder zo hard dat ze van me gaat houden, godverdomme. Dat krijg je er van als je me pingt, vuile teringleijer. Jouw soort mag wat mij betreft uitsterven. Weet je, ik ga je helemaal geen aandacht meer geven. Je mag de tering krijgen, en daar blijft het bij. Kutjong.",
|
||||
self.getResponseForMessage("stroopwafel")
|
||||
self.getResponseForMessageLocal("stroopwafel")
|
||||
]
|
||||
try:
|
||||
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)
|
||||
elif message.channel.id == self.bot.hdChannels["belangrijk"]: #don't abuse the "belangrijk" channel
|
||||
pass
|
||||
await self.learnFromMessagesInChannel(message.channel, 1)
|
||||
await self.respondToMessage(message)
|
||||
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)
|
||||
if message.channel.id == os.getenv('STROOP_CHANNEL_SHITPOST') and a < 40: #shitpost channel
|
||||
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 +182,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 +204,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 +245,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 +264,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)
|
||||
response = await self.getResponseForMessage(wordsToRespondTo)
|
||||
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,15 +281,41 @@ 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)
|
||||
response = await self.getResponseForMessage(wordsToRespondTo)
|
||||
await message.channel.send(response)
|
||||
|
||||
#Gets a response
|
||||
def getResponseForMessage(self, wordsToRespondTo):
|
||||
async def getResponseForMessage(self, wordsToRespondTo):
|
||||
if random.random() > 0.9:
|
||||
try:
|
||||
# GPT request moet echt even in een non-blocking executortje, anders loopt de hele boel vast
|
||||
response = await self.bot.loop.run_in_executor(None,self.getResponseForMessageOnline, wordsToRespondTo)
|
||||
if response:
|
||||
return response # Anders door naar local
|
||||
except:
|
||||
pass # Door naar local call
|
||||
return self.getResponseForMessageLocal(wordsToRespondTo)
|
||||
|
||||
def translateTo(self, language, text):
|
||||
req = requests.post('http://gpt.hoekveen.net/translate', json={"text": text, "source_lang": "auto", "target_lang": language})
|
||||
print(req.json())
|
||||
return req.json()["translations"][0]["text"]
|
||||
|
||||
def getResponseForMessageOnline(self, wordsToRespondTo):
|
||||
prompt = " ".join(wordsToRespondTo)
|
||||
if not prompt:
|
||||
prompt = self.getResponseForMessageLocal([])
|
||||
text = self.translateTo("en", prompt)
|
||||
req = requests.post('http://gpt.hoekveen.net/complete', json={"prompt": text, "max_tokens": 80})
|
||||
print(req.json())
|
||||
respons = req.json()["text"]
|
||||
respons = respons[0:respons.rfind(".")+1] # Alles weg na de laatste punt
|
||||
return self.translateTo("nl", respons)
|
||||
|
||||
def getResponseForMessageLocal(self, wordsToRespondTo):
|
||||
|
||||
MAX_N_WORDS = 100 #Don't use more words than this
|
||||
|
||||
@@ -351,7 +373,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 +446,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 +471,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
|
||||
|
||||
+8
-10
@@ -197,8 +197,7 @@ class Cryptocoin(commands.Cog):
|
||||
#user functions below
|
||||
|
||||
@commands.command(pass_context=True)
|
||||
@asyncio.coroutine
|
||||
def coinprice(self, ctx, coinId: str, currencyId: str="USD"):
|
||||
async def coinprice(self, ctx, coinId: str, currencyId: str="USD"):
|
||||
"""Geeft de huidige prijs van de desbetreffende crypto currency
|
||||
Bijv:
|
||||
!coinprice BTC
|
||||
@@ -211,20 +210,19 @@ class Cryptocoin(commands.Cog):
|
||||
currencyId = currencyId.upper()
|
||||
|
||||
if (currencyId not in allowedCurrencies):
|
||||
yield from ctx.channel.send("Valuta " + currencyId + " ken ik niet. :disappointed: ")
|
||||
await ctx.channel.send("Valuta " + currencyId + " ken ik niet. :disappointed: ")
|
||||
return
|
||||
|
||||
price = self.getCoinPrice(coinId, currencyId)
|
||||
|
||||
if (price == -1):
|
||||
yield from ctx.channel.send("Die cryptocoin ken ik niet... :frowning2: ")
|
||||
await ctx.channel.send("Die cryptocoin ken ik niet... :frowning2: ")
|
||||
return
|
||||
|
||||
yield from ctx.channel.send(coinId + " is nu " + str(price) + " " + currencyId + " waard.")
|
||||
await ctx.channel.send(coinId + " is nu " + str(price) + " " + currencyId + " waard.")
|
||||
|
||||
@commands.command(pass_context=True)
|
||||
@asyncio.coroutine
|
||||
def coinadvice(self, ctx, coinId: str=""):
|
||||
async def coinadvice(self, ctx, coinId: str=""):
|
||||
"""Voor al uw adviezen in monopolygeld
|
||||
Vraag Stroop's mening over een specifieke coin:
|
||||
!coinadvice NLG
|
||||
@@ -237,7 +235,7 @@ class Cryptocoin(commands.Cog):
|
||||
|
||||
#Geen specieke coin? Doe random.
|
||||
if(coinId == ""):
|
||||
yield from ctx.channel.send( self.getRandomCoinAdvice() )
|
||||
await ctx.channel.send( self.getRandomCoinAdvice() )
|
||||
return
|
||||
|
||||
coinId = coinId.upper()
|
||||
@@ -245,7 +243,7 @@ class Cryptocoin(commands.Cog):
|
||||
growPercentage, coinStability, dummy = self.analyseCoin(coinId)
|
||||
|
||||
if (growPercentage == 0 and coinStability == 1.0): #aanname. anders moet je weer een extra call doen.
|
||||
yield from ctx.channel.send("Die cryptocoin ken ik niet... :frowning2: ")
|
||||
await ctx.channel.send("Die cryptocoin ken ik niet... :frowning2: ")
|
||||
return
|
||||
|
||||
time.sleep(0.1) #don't overload the API
|
||||
@@ -302,5 +300,5 @@ class Cryptocoin(commands.Cog):
|
||||
if (coinStability < 0.3):
|
||||
message += "Denk ik?"
|
||||
|
||||
yield from ctx.channel.send(message)
|
||||
await ctx.channel.send(message)
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
FROM python:3.10
|
||||
FROM python:3.11
|
||||
|
||||
WORKDIR /opt/stroopwafel
|
||||
|
||||
|
||||
+34
-17
@@ -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,44 @@ 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)
|
||||
|
||||
@commands.command(pass_context=True)
|
||||
async def pollen(self, ctx):
|
||||
"Hoe veel last van pollen kun je verwachten?"
|
||||
poll = 'https://app.everviz.com/embed/apyvera/' # Thanks hooikoortsradar
|
||||
response = requests.get(poll)
|
||||
if response:
|
||||
# one-liner want eet stront
|
||||
cijfer = float(re.findall(r";\d\.?\d?;", json.loads([x for x in response.text.splitlines() if "var options =" in x][0].partition("=")[2].strip(";, "))["data"]["csv"])[-1].strip(";"))
|
||||
msg = ""
|
||||
if cijfer < 3:
|
||||
msg = f"Nou, het lijkt goed te gaan. Recentelijk gaven mensen hun klachten maar een {cijfer}. Lekker!"
|
||||
elif cijfer < 6:
|
||||
msg = f"Het lijkt allemaal mee te vallen. Men gaf hun klachten een {cijfer} deze week. Moet te doen zijn."
|
||||
elif cijfer < 7.5:
|
||||
msg = f"Ai. Het gaat lekker met de pollen, maar het ergste moet nog komen of is al geweest. Klachtencijfer van {cijfer}; Sterkte alvast."
|
||||
else:
|
||||
msg = f"Balen dit. Klachtencijfer van {cijfer}, dus bekijk het maar. Joe."
|
||||
await ctx.channel.send(ctx.author.mention + ' ' + msg)
|
||||
else:
|
||||
await ctx.channel.send(ctx.author.mention + ' Er lijkt even geen klachtencijfer beschikbaar te zijn. Probeer het later nog eens')
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
+81
-83
@@ -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)
|
||||
em = self.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,20 +383,20 @@ 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):
|
||||
return None
|
||||
|
||||
# Do the rolling
|
||||
random.seed(datetime.now())
|
||||
random.seed(datetime.now().timestamp())
|
||||
total = 0
|
||||
rolls = []
|
||||
for x in range(0, nrOfDice):
|
||||
@@ -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,28 @@ 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)
|
||||
|
||||
def get_zaagmans(self):
|
||||
zaagman_url = "http://iszaagmansallangsgeweest.nl/"
|
||||
zreq = requests.get(zaagman_url)
|
||||
if zreq:
|
||||
return zreq.text.partition("<h1>")[2].partition("</h1>")[0]
|
||||
else:
|
||||
return None
|
||||
|
||||
@commands.command(pass_context=True)
|
||||
async def zaagmans(self, ctx):
|
||||
"""Is zaagmans al langsgeweest? Is de week al doormidden. Wie weet."""
|
||||
gezaagd = self.get_zaagmans()
|
||||
message = ctx.author.mention + ": "
|
||||
if gezaagd:
|
||||
message += gezaagd
|
||||
else:
|
||||
message += "De waarheid over zaagmans is niet te doorgronden."
|
||||
await ctx.channel.send(message)
|
||||
+9
-1
@@ -3,6 +3,7 @@ import dotenv
|
||||
import os
|
||||
import discord
|
||||
import requests
|
||||
from datetime import datetime
|
||||
from discord.ext import commands
|
||||
|
||||
import Shitpost
|
||||
@@ -39,7 +40,7 @@ class TestShitpost(unittest.TestCase):
|
||||
def test_watspelenwe_cal(self):
|
||||
data = requests.get(os.getenv('STROOP_CALDAV_CAL'))
|
||||
if not data:
|
||||
self.skipTest(f"Server at {self.cog.muzak_url} has an error, or is unavailable")
|
||||
self.skipTest(f"Server at {os.getenv('STROOP_CALDAV_HOST')} has an error, or is unavailable")
|
||||
|
||||
(activiteit, reden) = self.cog.get_watspelenwe_cal()
|
||||
with self.subTest(msg="Watspelenwe activiteit does not return a string"):
|
||||
@@ -169,3 +170,10 @@ class TestShitpost(unittest.TestCase):
|
||||
message = self.cog.zalgofy(inmsg)
|
||||
self.assertIsInstance(message, str)
|
||||
self.assertEqual(len(message), len(inmsg)*5)
|
||||
|
||||
def test_zaagmans(self):
|
||||
zaag = self.cog.get_zaagmans()
|
||||
if zaag is None:
|
||||
self.skipTest(f"Server at iszaagmansallangsgeweest.nl has an error, or is unavailable")
|
||||
else:
|
||||
self.assertIsInstance(zaag, str)
|
||||
|
||||
Reference in New Issue
Block a user