diff --git a/bot.py b/bot.py index 43fbab3..18e38da 100755 --- a/bot.py +++ b/bot.py @@ -4,15 +4,26 @@ Code for schneiderbot """ import os import datetime +import urllib.request +import json +import logging import discord from discord.ext import commands +logging.basicConfig(level=logging.INFO) + DESCRIPTION = '''Schneiderbot, bald mit tollen Funktionen''' BOT = commands.Bot(command_prefix='!', description=DESCRIPTION) MENSA_URL = { "zentral": "zentralmensa", - "nord": "nordmensa" + "nord": "nordmensa", + "turm": "turmmensa" +} +MENSA_NAME = { + "zentral": "Zentralmensa", + "nord": "Nordmensa", + "turm": "Turmmensa" } @BOT.event @@ -25,23 +36,43 @@ async def on_ready(): @BOT.command() async def hello(): - """Says world""" - await BOT.say("world") + """Was ist das hier für eins Bot?""" + await BOT.say("""Hallo, ich bin ein Bot. +Ich liefere tolle Informationen über die Mensa. Die Infos kommen von +https://mensa.schneider-hosting.de +Mhmm, lecker. Guten Appetit!""") @BOT.command() async def mensa(which="zentral"): """Gibt leckere, äh, nützliche Infos über die Mensa aus. - Standardmäßig für die Zentralmensa, aber probier auch mal nord aus.""" + Standardmäßig für die Zentralmensa, aber probier auch mal nord oder turm aus.""" today = datetime.datetime.now().date().weekday() + 1 if datetime.datetime.now().time() > datetime.time(hour=16): # Es ist zu spät am Tag, zeig das essen für morgen an today += 1 - await BOT.say("""Hallo, ich bin ein Bot. -Hier gibt es tolle Infos über das Essen in der Mensa: -https://mensa.schneider-hosting.de/%s/%d -Mhmm, lecker. Guten Appetit!""" % (MENSA_URL[which], today)) + with urllib.request.urlopen("https://mensa.schneider-hosting.de/static/%s.%d.json" % (MENSA_URL[which], today)) as url: + data = json.loads(url.read().decode()) + + message = "" + for meal in data["meals"]: + meal_line = "**%s**\n" % meal["category"] + meal_line += meal["title"].strip() + "\n" + + # Discord only allows up to 2000 chars per message + if len(message) + len(meal_line) > 2000: + await BOT.say(message) + message = meal_line + else: + message += meal_line + + await BOT.say(message) + +@BOT.command() +async def magie(): + """MAGIEEEEEE""" + await BOT.say("Magie ist Physik durch wollen!") def main(): """ entry point """