forked from angerstoner/schneiderbot-tg
Angerstoner
6 years ago
3 changed files with 115 additions and 116 deletions
-
2db.py
-
111mensa.py
-
118schneiderbot.py
@ -0,0 +1,111 @@ |
|||
import datetime |
|||
from telegram import ParseMode |
|||
import requests |
|||
|
|||
DIETS = { |
|||
"veggy": "fleischlos", |
|||
"fleisch": "mit Fleisch", |
|||
"fisch": "mit Fisch/Meeresfrüchten" |
|||
} |
|||
|
|||
WEEKDAYS = { |
|||
"montag": 1, |
|||
"dienstag": 2, |
|||
"mittwoch": 3, |
|||
"donnerstag": 4, |
|||
"freitag": 5, |
|||
"samstag": 6, |
|||
} |
|||
|
|||
MENSA_URL = { |
|||
"zentral": "goe1", |
|||
"turm": "goe2", |
|||
"nord": "goe3", |
|||
"italia": "goe4", |
|||
"fasthochschule": "goe5" |
|||
} |
|||
|
|||
MENSA_NAME = { |
|||
"zentral": "Zentralmensa", |
|||
"nord": "Nordmensa", |
|||
"turm": "Turmmensa", |
|||
"italia": "Mensa Italia", |
|||
"fasthochschule": "Bistro Fasthochschule" |
|||
} |
|||
|
|||
HIDE_CATEGORIES_LIGHT = { |
|||
"CampusCurry", |
|||
"natürlich fit", |
|||
"Fitnesscenter", |
|||
"Salatbuffet", |
|||
"Studentenfutter", |
|||
"Süße Versuchung", |
|||
"Süße Spezial Tagesangebot", |
|||
"Vollwert & Co. Stärke", |
|||
"Vollwert & Co. Gemüse", |
|||
"Bio-Beilagen", |
|||
"Dessertbuffet", |
|||
"Last Minute ab 14:30 Uhr", |
|||
## Nordmensa: |
|||
"Salatbuffet/Pastapoint", |
|||
"Last Minute ab 13:30 Uhr", |
|||
## Turmmensa: |
|||
"Beilagen", |
|||
"Last Minute ab 14:00Uhr" |
|||
} |
|||
|
|||
HIDE_CATEGORIES_FULL = { |
|||
"Last Minute ab 14:30 Uhr", |
|||
"Last Minute ab 13:30 Uhr", |
|||
"Last Minute ab 14:00Uhr" |
|||
} |
|||
|
|||
MODES = { |
|||
"light": HIDE_CATEGORIES_LIGHT, |
|||
"full": HIDE_CATEGORIES_FULL |
|||
} |
|||
|
|||
|
|||
def mensa(bot, update, args): |
|||
which = "zentral" |
|||
filter_categories = MODES["light"] |
|||
offset = 0 |
|||
# today = datetime.datetime.now().date().weekday() + 1 |
|||
if datetime.datetime.now().time() > datetime.time(hour=16): |
|||
offset += 1 |
|||
# |
|||
# today = today % 7 |
|||
|
|||
for arg in args: |
|||
arg = arg.lower() |
|||
if arg in MENSA_NAME: |
|||
which = arg |
|||
elif arg in MODES: |
|||
filter_categories = MODES[arg] |
|||
elif arg in WEEKDAYS: |
|||
today = WEEKDAYS[arg] |
|||
# elif arg in DIETS: |
|||
# diet = DIETS[arg] |
|||
else: |
|||
update.message.reply_text("Falscher Aufruf! RTFM und versuchs nochmal.") |
|||
return |
|||
# if today == 0: |
|||
# update.message.reply_text("Sonntags hat die Mensa zu") |
|||
# return |
|||
|
|||
url = "https://app.mensaplan.de/api/11102/de.mensaplan.app.android.goettingen/%s.json" % MENSA_URL[which] |
|||
request = requests.get(url) |
|||
request.encoding = 'utf-8' |
|||
data = request.json() |
|||
|
|||
today_data = data['days'][offset] |
|||
|
|||
message = "Das Essen für %s in der %s \n\n" % (today_data["date"], MENSA_NAME[which]) |
|||
for cat in today_data['categories']: |
|||
if cat['name'] not in filter_categories: |
|||
meal_line = "*%s*\n" % cat['name'] |
|||
for meal in cat['meals']: |
|||
meal_line += meal['name'].strip() + "\n" |
|||
message += meal_line + '\n' |
|||
|
|||
update.message.reply_text(message, ParseMode.MARKDOWN) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue