|
@ -4,15 +4,26 @@ Code for schneiderbot |
|
|
""" |
|
|
""" |
|
|
import os |
|
|
import os |
|
|
import datetime |
|
|
import datetime |
|
|
|
|
|
import urllib.request |
|
|
|
|
|
import json |
|
|
|
|
|
import logging |
|
|
|
|
|
|
|
|
import discord |
|
|
import discord |
|
|
from discord.ext import commands |
|
|
from discord.ext import commands |
|
|
|
|
|
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO) |
|
|
|
|
|
|
|
|
DESCRIPTION = '''Schneiderbot, bald mit tollen Funktionen''' |
|
|
DESCRIPTION = '''Schneiderbot, bald mit tollen Funktionen''' |
|
|
BOT = commands.Bot(command_prefix='!', description=DESCRIPTION) |
|
|
BOT = commands.Bot(command_prefix='!', description=DESCRIPTION) |
|
|
MENSA_URL = { |
|
|
MENSA_URL = { |
|
|
"zentral": "zentralmensa", |
|
|
"zentral": "zentralmensa", |
|
|
"nord": "nordmensa" |
|
|
|
|
|
|
|
|
"nord": "nordmensa", |
|
|
|
|
|
"turm": "turmmensa" |
|
|
|
|
|
} |
|
|
|
|
|
MENSA_NAME = { |
|
|
|
|
|
"zentral": "Zentralmensa", |
|
|
|
|
|
"nord": "Nordmensa", |
|
|
|
|
|
"turm": "Turmmensa" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@BOT.event |
|
|
@BOT.event |
|
@ -25,23 +36,43 @@ async def on_ready(): |
|
|
|
|
|
|
|
|
@BOT.command() |
|
|
@BOT.command() |
|
|
async def hello(): |
|
|
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() |
|
|
@BOT.command() |
|
|
async def mensa(which="zentral"): |
|
|
async def mensa(which="zentral"): |
|
|
"""Gibt leckere, äh, nützliche Infos über die Mensa aus. |
|
|
"""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 |
|
|
today = datetime.datetime.now().date().weekday() + 1 |
|
|
if datetime.datetime.now().time() > datetime.time(hour=16): |
|
|
if datetime.datetime.now().time() > datetime.time(hour=16): |
|
|
# Es ist zu spät am Tag, zeig das essen für morgen an |
|
|
# Es ist zu spät am Tag, zeig das essen für morgen an |
|
|
today += 1 |
|
|
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(): |
|
|
def main(): |
|
|
""" entry point """ |
|
|
""" entry point """ |
|
|