589 lines
20 KiB
Python
589 lines
20 KiB
Python
import asyncio
|
|
import discord
|
|
from discord.ext import commands
|
|
from urllib import request
|
|
import requests
|
|
import oauth2 as oauth
|
|
import json, requests
|
|
import math
|
|
from datetime import datetime
|
|
import sys
|
|
import os
|
|
import random
|
|
|
|
class Shitpost(object):
|
|
"""Schijtpaal commando's. Alleen bruikbaar in de daarvoor toegewezen schijtpaal kanalen."""
|
|
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
self.voice_states = {}
|
|
self.hdConImpatientEvents = []
|
|
def __check(self, ctx): #Todo: Is dit het shitpost kanaal?
|
|
return True
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
def ishetalhdcon(self, ctx):
|
|
"""Hoe lang nog tot Hoestende Dranken Con 2018?
|
|
Gebruik: !ishetalhdcon
|
|
"""
|
|
|
|
#year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
|
|
Now = datetime.now()
|
|
HdConDate = datetime(2018, 9, 14, 4, 0, 1) #om 4 uur lig je toch wel al op bed?
|
|
Distance = HdConDate - Now
|
|
Message = Message = "HD Con 2018 is al voorbij. HD Con 2019 zal in 2019 plaatsvinden." #init
|
|
if Distance.days < 0:
|
|
if Now.month == 9:
|
|
if Now.day == 14:
|
|
Message = "HD Con 2018 begint vandaag! OMG!"
|
|
elif Now.day == 15 or Now.day == 16:
|
|
Message = "HD Con 2018 is nu bezig!!"
|
|
elif Now.day == 17:
|
|
Message = "HD Con 2018 is vandaag alweer afgelopen... F"
|
|
yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message))
|
|
return
|
|
else:
|
|
NachtjesSlapen = Distance.days + 1
|
|
if NachtjesSlapen == 1:
|
|
Message = "Nog " + str(NachtjesSlapen) + " nachtje slapen..."
|
|
else:
|
|
Message = "Nog " + str(NachtjesSlapen) + " nachtjes slapen..."
|
|
|
|
#Hou bij hoe vaak dit wordt gevraagd:
|
|
eventsMinutesAgo = 0;
|
|
eventsMinutesAgoSameAuthor = 0;
|
|
eventsLastDays = 0;
|
|
for evt in self.hdConImpatientEvents:
|
|
eventDistance = Now - evt[1]
|
|
if eventDistance.days < 1 and eventDistance.seconds < 600:
|
|
eventsMinutesAgo += 1
|
|
if evt[0] == ctx.author.id:
|
|
eventsMinutesAgoSameAuthor +=1
|
|
if eventDistance.days < 2:
|
|
eventsLastDays += 1
|
|
if not "DMChannel" in type(ctx.channel).__name__: #ignore personal chats
|
|
self.hdConImpatientEvents.append([ctx.author.id, Now])
|
|
|
|
#Als dezelfde persoon het blijft vragen pikken we het niet:
|
|
if eventsMinutesAgoSameAuthor > 3:
|
|
return #fuck it.
|
|
if eventsMinutesAgoSameAuthor > 0:
|
|
if eventsMinutesAgoSameAuthor > 2:
|
|
yield from ctx.channel.send("...")
|
|
return
|
|
yield from 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!")
|
|
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))
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
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̴̡̯̦͉͙̪̭͕̻̝
|
|
S̴̼͂ ̴̤͘I̴̯͌ ̸̹͛N̵̙͂ ̴̥̅T̶̡̀ ̵̼́E̷̞͌ ̵͚͗R̸͔͑ ̶̢͝K̴̭͂ ̷̨͋L̴̖͂ ̶̪͝A̵̹͗ ̸͓̑Ȁ̶̘ ̸̟́S̵̯̆
|
|
Gebruik: !zalgo [text]
|
|
Bijv: !zalgo "Je moeder"
|
|
"""
|
|
factor = 4
|
|
message = ''
|
|
#from https://github.com/Aethylia/zalgo-cli:
|
|
for letter in arg:
|
|
for i in range(factor):
|
|
letter += random.randint(0x300, 0x36f).to_bytes(2, byteorder='big').decode('utf-16be')
|
|
message += letter
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention + ' ' + str(message))
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
def viertwintig(self, ctx):
|
|
"""Hoe lang nog tot 420?
|
|
Gebruik: !viertwintig
|
|
"""
|
|
#year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
|
|
Now = datetime.now()
|
|
Next420 = datetime(Now.year, 4, 20, 16, 20, 00)
|
|
Distance = Next420 - Now
|
|
print("Time till 420: " + str(Distance.days) + ", " + str(Distance.seconds))
|
|
Message = ""
|
|
if Distance.days < 0:
|
|
Message += "420 is al geweest dit jaar. Blaze het volgend jaar nog eens."
|
|
else:
|
|
days = Distance.days #bv 4
|
|
secondsLeft = (Distance.seconds)
|
|
print(secondsLeft)
|
|
hours = math.floor(secondsLeft / 3600)
|
|
print(hours)
|
|
secondsLeft = secondsLeft - hours*3600
|
|
minutes = math.floor(secondsLeft / 60)
|
|
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))
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
def iselderscrolls6aluit(self, ctx):
|
|
"""Hoe lang nog tot Elder Scrolls 6? 11-11-11? 20-20-20?
|
|
Gebruik: !iselderscrolls6aluit
|
|
"""
|
|
Now = datetime.now()
|
|
|
|
if Now.month == 4 and Now.day == 1:
|
|
Message = "JA! :hushed: " #1 april, motherfucker.
|
|
else:
|
|
Message = "Nee. :frowning2: Nog even geduld..."
|
|
|
|
yield from ctx.channel.send(ctx.author.mention + ' ' + str(Message))
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
def giethetaloan(self, ctx):
|
|
"""Giet het al oan?
|
|
Ja of Nee.. kom op nou.
|
|
"""
|
|
#We halen dit op van de twitter account @gietitaloan die vertrouwen wij als de ultieme waarheid
|
|
consumer = oauth.Consumer(key=self.bot.tokens["twitterKey"], secret=self.bot.tokens["twitterSecret"])
|
|
client = oauth.Client(consumer)
|
|
resp, content = client.request("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=gietitaloan&count=1", "GET")
|
|
#TODO kijken of resp iets zinnigs teruggeeft.. of iets doen met een try of catch ofzow
|
|
content_str = content.decode('utf-8') #converteren naar str voor welke stomme reden dan ook
|
|
answer = json.loads(content_str)[0]["text"] #inhoud van de tweet
|
|
answer = answer.lower()
|
|
reactie = ""
|
|
if 'ja' in answer:
|
|
if 'nee' in answer:
|
|
reactie += 'Het is onduidelijk..'
|
|
else:
|
|
reactie += 'Het giet oan!'
|
|
else:
|
|
if 'nee' in answer:
|
|
reactie += 'Nee helaas..'
|
|
yield from ctx.channel.send(ctx.author.mention + ' ' + reactie)
|
|
|
|
@commands.command(pass_context=True, hidden=False)
|
|
@asyncio.coroutine
|
|
def inspire(self, ctx):
|
|
"""Laat je inspireren
|
|
Bijvoorbeeld:
|
|
!inspire
|
|
"""
|
|
r = requests.get(url='http://inspirobot.me/api?generate=true')
|
|
if r.status_code is 200:
|
|
url = r.text
|
|
em = discord.Embed(title='Uw wijze woorden:', type='photo')
|
|
em.set_image(url=url)
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention, embed=em)
|
|
else:
|
|
yield from ctx.channel.send(ctx.author.mention + ' helaas, geen quote gevonden.')
|
|
|
|
@commands.command(pass_context=True, hidden=True)
|
|
@asyncio.coroutine
|
|
def mark(self, ctx, boven: str, onder: str):
|
|
"""Maakt een mark meem.
|
|
Bijvoorbeeld:
|
|
!mark \"je moeder\" \"is een hoer\"
|
|
"""
|
|
params = dict(
|
|
template_id = '112898841', #de marku
|
|
username = 'Stroopwafel',
|
|
password = self.bot.passwords["imgflip"],
|
|
text0 = boven,
|
|
text1 = onder
|
|
)
|
|
#self.bot.say("deed ik het ding?")
|
|
resp = requests.get(url='https://api.imgflip.com/caption_image', params=params)
|
|
#todo check for success
|
|
photourl = resp.json()['data']['url']
|
|
em = discord.Embed(title='De Mark heeft gesproken.', type='photo')
|
|
em.set_image(url=photourl)
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from 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):
|
|
"""Maakt een erik meem.
|
|
Bijvoorbeeld:
|
|
!eriku \"je moeder\" \"is een hoer\"
|
|
"""
|
|
params = dict(
|
|
template_id = '93296473', #de eriku
|
|
username = 'Stroopwafel',
|
|
password = self.bot.passwords["imgflip"],
|
|
text0 = boven,
|
|
text1 = onder
|
|
)
|
|
#self.bot.say("deed ik het ding?")
|
|
resp = requests.get(url='https://api.imgflip.com/caption_image', params=params)
|
|
#todo check for success
|
|
photourl = resp.json()['data']['url']
|
|
em = discord.Embed(title='De Eriku heeft gesproken. Prijs hem!', type='photo')
|
|
em.set_image(url=photourl)
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention, embed=em)
|
|
|
|
@commands.command(pass_context=True, hidden=True)
|
|
@asyncio.coroutine
|
|
def tegeltje(self, ctx, tekst: str, auteur: str=" "):
|
|
"""Maak een mooi tegeltje met volkswijsheid
|
|
Bijvoorbeeld:
|
|
!tegeltje \"Oost west, 420 best\" \"Lourens\"
|
|
"""
|
|
|
|
params = {
|
|
'template_id': '121572521', #delfts blauw
|
|
'username': 'Stroopwafel',
|
|
'password': self.bot.passwords["imgflip"],
|
|
'text0': 'dummy0',
|
|
'text1': 'dummy1',
|
|
'font': 'arial',
|
|
'max_font_size': 27,
|
|
'boxes[0][text]': tekst,
|
|
'boxes[0][x]': 40,
|
|
'boxes[0][y]': 85,
|
|
'boxes[0][width]': 220,
|
|
'boxes[0][height]': 150,
|
|
'boxes[0][color]': '#0044cc',
|
|
'boxes[0][outline_color]': '#ffffff',
|
|
'boxes[1][text]': auteur,
|
|
'boxes[1][x]': 80,
|
|
'boxes[1][y]': 245,
|
|
'boxes[1][width]': 140,
|
|
'boxes[1][height]': 12,
|
|
'boxes[1][color]': '#0044cc',
|
|
'boxes[1][outline_color]': '#ffffff'
|
|
}
|
|
|
|
resp = requests.get(url='https://api.imgflip.com/caption_image', params=params)
|
|
#todo check for success
|
|
photourl = resp.json()['data']['url']
|
|
em = discord.Embed(title='Tegeltjeswijsheid:', type='photo')
|
|
em.set_image(url=photourl)
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention, embed=em)
|
|
|
|
@commands.command(pass_context=True)
|
|
@asyncio.coroutine
|
|
def relevantxkcd(self, ctx, query: str):
|
|
"""There is always a relevant XKCD
|
|
Bijvoorbeeld:
|
|
!relevantxkcd python
|
|
"""
|
|
|
|
#self.bot.say("deed ik het ding?")
|
|
response = requests.get("https://relevantxkcd.appspot.com/process?action=xkcd&query=" + query)
|
|
|
|
splitResponse = response.text.split(" ")
|
|
|
|
if (float(splitResponse[0]) == 0.0):
|
|
yield from ctx.channel.send('Ik kan helaas geen XKCD vinden met als onderwerp "' + query + '".')
|
|
return
|
|
|
|
photoUrl = "http://www.explainxkcd.com" + splitResponse[3]
|
|
|
|
print(photoUrl)
|
|
|
|
em = discord.Embed(title='', type='photo')
|
|
em.set_image(url=photoUrl)
|
|
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention +
|
|
' een XKCD over "' + query + '"', embed=em)
|
|
|
|
@commands.command(pass_context=True, hidden=True)
|
|
@asyncio.coroutine
|
|
def zout(self, ctx, boven: str, onder: str):
|
|
"""Maakt een martijn-zout meem.
|
|
Bijvoorbeeld:
|
|
!zout \"je moeder\" \"is een hoer\"
|
|
"""
|
|
params = dict(
|
|
template_id = '116231806', #de martijn
|
|
username = 'Stroopwafel',
|
|
password = self.bot.passwords["imgflip"],
|
|
text0 = boven,
|
|
text1 = onder
|
|
)
|
|
#self.bot.say("deed ik het ding?")
|
|
resp = requests.get(url='https://api.imgflip.com/caption_image', params=params)
|
|
#todo check for success
|
|
photourl = resp.json()['data']['url']
|
|
em = discord.Embed(title='De Martijn heeft gesproken.', type='photo')
|
|
em.set_image(url=photourl)
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(ctx.author.mention, embed=em)
|
|
|
|
@commands.command(pass_context=True, hidden=True)
|
|
@asyncio.coroutine
|
|
def nihao(self,ctx):
|
|
#yield from self.bot.say("Kankerlauw")
|
|
yield from ctx.channel.send("kankerlauw")
|
|
|
|
@commands.command(pass_context=True)
|
|
@asyncio.coroutine
|
|
def tijd(self, ctx, *args):
|
|
"""Vertelt je hoe laat het is..
|
|
Misschien geeft het ook wel een leuke meem terug.
|
|
Wie weet.
|
|
Probeer het eens op verschillende tijdstippen.
|
|
"""
|
|
|
|
time=datetime.now().strftime('%H%M')
|
|
for argument in args:
|
|
time = argument
|
|
filepath = ''
|
|
#filejpg = './tijd/' + time + '.jpg'
|
|
#filepng = './tijd/' + time + '.png'
|
|
filejpg = os.path.join('tijd', time) + '.jpg'
|
|
filepng = os.path.join('tijd', time) + '.png'
|
|
if os.path.isfile(filejpg):
|
|
filepath = filejpg
|
|
elif os.path.isfile(filepng):
|
|
filepath = filepng
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
if filepath is not '':
|
|
#file = open(filepath, 'rb')
|
|
#yield from self.bot.upload(file, filename = filepath)
|
|
yield from 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'))
|
|
|
|
|
|
@commands.command(pass_context=True)
|
|
@asyncio.coroutine
|
|
def roll(self, ctx, dice="1d20", modifier1="", modifier2=""):
|
|
"""Roll een dobbelsteen. Of een paar. Bijvoorbeeld:
|
|
!roll 4d20
|
|
!roll 1d6 + 5
|
|
"""
|
|
diceSplit = dice.lower().split('d')
|
|
if len(diceSplit) != 2:
|
|
return
|
|
modifier1 = modifier1.replace("+", "") #this is both possible: "1d20 + 1" and "1d20 +1"
|
|
modifier2 = modifier2.replace("+", "")
|
|
if modifier1 == "-":
|
|
modifier1 = ""; #this is also possible: "1d20 - 1"
|
|
modifier2 = "-" + modifier2
|
|
try: #check if they are numbers:
|
|
nrOfDice = 1 if (diceSplit[0]=="") else int(diceSplit[0]) #allow input like: "!roll d20"
|
|
dieType = int(diceSplit[1])
|
|
mod1 = 0 if (modifier1=="") else int(modifier1)
|
|
mod2 = 0 if (modifier2=="") else int(modifier2)
|
|
except ValueError:
|
|
return
|
|
#validate values:
|
|
if nrOfDice < 1 or nrOfDice > 99 or dieType < 2 or dieType > 100:
|
|
return
|
|
if mod1 < -999 or mod1 > 999 or mod2 < -999 or mod2 > 999:
|
|
return
|
|
|
|
#roll:
|
|
random.seed(datetime.now())
|
|
total = 0
|
|
returnText = "Rolling " + str(nrOfDice) + "d" + str(dieType) + "...\n"
|
|
for x in range(0, nrOfDice):
|
|
if x != 0:
|
|
returnText += "+ "
|
|
roll = random.randint(1, dieType)
|
|
total += roll
|
|
if dieType >= 10 and (roll == 1 or roll == dieType):
|
|
returnText += "[**" + str(roll) + "**] " #make significant numbers bold
|
|
else:
|
|
returnText += "[" + str(roll) + "] "
|
|
total += mod1 + mod2
|
|
if mod1 != 0:
|
|
if mod1 > 0:
|
|
returnText += "+"
|
|
returnText += str(mod1) + " "
|
|
if mod2 != 0:
|
|
if mod2 > 0:
|
|
returnText += "+"
|
|
returnText += str(mod2) + " "
|
|
if nrOfDice > 1 or mod1 != 0 or mod2 != 0: #only show calculation if it makes sense:
|
|
returnText += " = __**" + str(total) + "**__"
|
|
|
|
yield from ctx.channel.send(returnText)
|
|
|
|
|
|
@commands.command(pass_context=True)
|
|
@asyncio.coroutine
|
|
def weer(self, ctx, location="Leiden"):
|
|
"""Vertelt je het weer.
|
|
Omdat je te lui bent om naar buiten te kijken.
|
|
Oant Moarn!
|
|
"""
|
|
weatherIconTranslation = {
|
|
"zonnig" : ":sun_with_face:",
|
|
"bliksem" : ":cloud_lightning:",
|
|
"regen" : ":cloud_rain:",
|
|
"buien" : ":umbrella:",
|
|
"hagel" : ":cloud_snow:",
|
|
"mist" : ":white_large_square:",
|
|
"sneeuw" : ":cloud_snow:",
|
|
"bewolkt" : ":white_sun_cloud:",
|
|
"halfbewolkt" : ":partly_sunny:",
|
|
"zwaarbewolkt" : ":cloud:",
|
|
"nachtmist" : ":ghost:",
|
|
"helderenacht" : ":first_quarter_moon_with_face:",
|
|
"wolkennacht" : ":cloud:"
|
|
}
|
|
if(location == ""):
|
|
location = "Leiden"
|
|
|
|
url = "http://weerlive.nl/api/json-10min.php?locatie=" + location
|
|
response = requests.get(url)
|
|
#Oant Moarn
|
|
|
|
if (response.ok):
|
|
wData = json.loads(response.content.decode('utf-8'))
|
|
message = ""
|
|
|
|
if (wData["liveweer"][0]["alarm"] == "1"):
|
|
message += "\n\n" + "HOLY SHIT :scream: ER IS EEN WEERALARM!!!1!: "
|
|
message += wData["liveweer"][0]["alarmtxt"] + ". Hide yo kids, hide yo wife! \n\n"
|
|
|
|
message += weatherIconTranslation[ wData["liveweer"][0]["image"] ]
|
|
message += " Het is " + wData["liveweer"][0]["temp"] + " graden "
|
|
message += "en het weer is: " + wData["liveweer"][0]["samenv"] + ". "
|
|
message += "De verwachting: " + wData["liveweer"][0]["verw"]
|
|
|
|
message += "\n\nMorgen: " + weatherIconTranslation[ wData["liveweer"][0]["d1weer"] ]
|
|
message += " " + wData["liveweer"][0]["d1tmin"] + " tot "
|
|
message += wData["liveweer"][0]["d1tmax"] + " graden. "
|
|
if (wData["liveweer"][0]["d1neerslag"] == "0"):
|
|
message += "Geen neerslag. "
|
|
else:
|
|
message += "Kans op neerslag: " + wData["liveweer"][0]["d1neerslag"] + "%. "
|
|
if (int(wData["liveweer"][0]["d1windk"]) > 5):
|
|
message += "Windkracht " + wData["liveweer"][0]["d1windk"] + ". Blow it."
|
|
|
|
message += "\n\nOvermorgen: "+ weatherIconTranslation[ wData["liveweer"][0]["d2weer"] ]
|
|
message += " " + wData["liveweer"][0]["d2tmin"] + " tot "
|
|
message += wData["liveweer"][0]["d2tmax"] + " graden. "
|
|
if (wData["liveweer"][0]["d2neerslag"] == "0"):
|
|
message += "Geen neerslag. "
|
|
else:
|
|
message += "Kans op neerslag: " + wData["liveweer"][0]["d2neerslag"] + "%. "
|
|
if (int(wData["liveweer"][0]["d2windk"]) > 5):
|
|
message += "Windkracht " + wData["liveweer"][0]["d2windk"] + ". "
|
|
|
|
message += "\n\nOant Moarn!"
|
|
|
|
yield from ctx.channel.send(message)
|
|
else:
|
|
print("API ERROR. :robot:")
|
|
|
|
@commands.command(pass_context=True)
|
|
@asyncio.coroutine
|
|
def watspelenwe(self, ctx):
|
|
"""Stroop weet wat we spelen op vrijdag.
|
|
Geeft elke week een pseudo-random antwoord.
|
|
Geseed op weeknummer + jaar.
|
|
"""
|
|
SPELLEN = [
|
|
"DND", "Ars Magica",
|
|
"5e", "4e",
|
|
"Pathfinder", "Pathfinder 2",
|
|
"CoC", "Delta Green",
|
|
"een one-shot", "Kaarten tegen de Mensheid",
|
|
"Midfloat", "Isle of Arden",
|
|
"dat ene systeem voor een one-shot waarna we stellen dat het voor herhaling vatbaar is maar volgende keer doen we toch weer een ander systeem"
|
|
]
|
|
PLAATSEN = [
|
|
"bij Mark thuis", "bij Freek thuis",
|
|
"bij JP thuis", "bij Erik thuis",
|
|
"bij Lourens thuis", "in de Vrouwensteeg",
|
|
"bij Martijn thuis", "bij je moeder thuis",
|
|
"op ROLL20"
|
|
]
|
|
AANVANG = [
|
|
"17:00.", "17:30.",
|
|
"18:00.", "als Martijn aanbelt.",
|
|
"nadat de big in de bakfiets is langsgeweest.", "na Lourens' t-break.",
|
|
"als iedereen heeft gekookt."
|
|
]
|
|
PERSONEN = [
|
|
"Mark", "Lourens", "JP",
|
|
"Freek", "Martijn", "Erik"
|
|
]
|
|
VIDYA = [
|
|
"Monster Hunter.", "Grim Dawn.",
|
|
"Diablo.", "PoE.",
|
|
"Dota 2.", "Minecraft",
|
|
"dat ene spel dat net uit is gekomen in de Humble Bundle waar we na 2 dagen klaar mee zijn precies wanneer Martijn wel tijd heeft mee te spelen."
|
|
]
|
|
|
|
Now = datetime.now()
|
|
week = Now.isocalendar()[1]
|
|
lekkerzaad = week + Now.year
|
|
|
|
if (Now.weekday() == 5) or (Now.weekday() == 6):
|
|
lekkerzaad += 1
|
|
|
|
random.seed(lekkerzaad)
|
|
|
|
if Now.weekday() == 4:
|
|
DAG = "vandaag "
|
|
else:
|
|
DAG = "vrijdag "
|
|
|
|
message = ""
|
|
KEUZEMOGELIJKHEDEN = random.randint(0, 10)
|
|
if KEUZEMOGELIJKHEDEN == 10:
|
|
message = "We gaan " + DAG + "poppetjes verven " + random.choice(PLAATSEN) + ", aanvang " + random.choice(AANVANG)
|
|
elif KEUZEMOGELIJKHEDEN == 9:
|
|
message = random.choice(PERSONEN) + " is ziek, we spelen " + random.choice(VIDYA)
|
|
elif KEUZEMOGELIJKHEDEN == 8:
|
|
message = "We spelen " + DAG + random.choice(SPELLEN) + " " + random.choice(PLAATSEN) + ", aanvang " + random.choice(AANVANG) + " Zelfs Guus doet mee."
|
|
else:
|
|
message = "We spelen " + DAG + random.choice(SPELLEN) + " " + random.choice(PLAATSEN) + ", aanvang " + random.choice(AANVANG)
|
|
|
|
try:
|
|
yield from ctx.message.delete()
|
|
except:
|
|
print("No permission to delete message")
|
|
yield from ctx.channel.send(message)
|
|
|
|
|
|
def setup(bot):
|
|
bot.add_cog(Shitpost(bot)) |