pull/93/head
Stijn De Clercq 2021-09-26 13:10:57 +02:00
parent 7ab72aabfd
commit 1ee9900891
2 changed files with 41 additions and 35 deletions

View File

@ -20,27 +20,29 @@ class School(commands.Cog):
@commands.command(name="Eten", aliases=["Food", "Menu"], usage="[Dag]*") @commands.command(name="Eten", aliases=["Food", "Menu"], usage="[Dag]*")
# @commands.check(checks.allowedChannels) # @commands.check(checks.allowedChannels)
@help.Category(category=Category.School) @help.Category(category=Category.School)
async def eten(self, ctx, *day): async def eten(self, ctx, day: str = None):
day_dt = les.find_target_date(day if day else None) day_dt = les.find_target_date(day if day else None)
day_dt = skip_weekends(day_dt) day_dt = skip_weekends(day_dt)
day = intToWeekday(day_dt.weekday()) day = intToWeekday(day_dt.weekday())
# Create embed # Create embed
menu = eten.etenScript(day) menu = eten.etenScript(day_dt)
embed = discord.Embed(colour=discord.Colour.blue()) embed = discord.Embed(colour=discord.Colour.blue())
embed.set_author(name="Menu voor {}".format(day)) embed.set_author(name="Menu voor {}".format(day.lower()))
if "gesloten" in menu[0].lower(): if "gesloten" in menu[0].lower():
embed.description = "Restaurant gesloten" embed.description = "Restaurant gesloten"
else: else:
embed.add_field(name="Soep:", value=menu[0], inline=False) embed.add_field(name="🥣 Soep:", value=menu[0], inline=False)
embed.add_field(name="Hoofdgerechten:", value=menu[1], inline=False) embed.add_field(name="🍴 Hoofdgerechten:", value=menu[1], inline=False)
if menu[2]: if menu[2]:
embed.add_field(name="Groenten:", value=menu[2], inline=False) embed.add_field(name="❄️ Koud:", value=menu[2], inline=False)
embed.set_footer(text="Omwille van de coronamaatregelen is er een beperkter aanbod, en kan je enkel nog eten afhalen. Ter plaatse eten is niet meer mogelijk.") if menu[3]:
await ctx.send(embed=embed) embed.add_field(name="🥦 Groenten:", value=menu[3], inline=False)
await ctx.reply(embed=embed, mention_author=False)
@commands.command(name="Les", aliases=["Class", "Classes", "Sched", "Schedule"], usage="[Dag]*") @commands.command(name="Les", aliases=["Class", "Classes", "Sched", "Schedule"], usage="[Dag]*")
# @commands.check(checks.allowedChannels) # @commands.check(checks.allowedChannels)

View File

@ -1,29 +1,39 @@
import datetime from datetime import datetime
from typing import Dict
import requests import requests
def etenScript(weekDag, resto: str = "sterre"): def get_type(menu: Dict, type_: str) -> str:
acc = ""
for m in menu["meals"]:
# API sometimes has empty results, also filter out wrong type
if not m["name"] or m["type"] != type_:
continue
if m["kind"] == "meat":
acc += ("* Vlees: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "fish":
acc += ("* Vis: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "vegetarian":
acc += ("* Vegetarisch: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "vegan":
acc += ("* Vegan: {} ({})\n".format(m["name"], m["price"]))
return acc
def etenScript(dag: datetime, resto: str = "sterre"):
# What day # What day
weekdagen = ('ma', 'di', 'wo', 'do', 'vr', 'za', 'zo')
deltas = {'morgen': 1,
'overmorgen': 2,
'volgende': 7}
d = datetime.date.today()
if weekDag in deltas:
d += datetime.timedelta(deltas[weekDag])
if weekDag[0:2] in weekdagen:
while d.weekday() != weekdagen.index(weekDag[0:2]):
d += datetime.timedelta(1)
menuSoep = "" menuSoep = ""
menuHoofdgerechten = "" menuHoofdgerechten = ""
menuKoud = ""
menuGroenten = "" menuGroenten = ""
# Fetch from API # Fetch from API
try: try:
menu = requests.get(f"https://zeus.ugent.be/hydra/api/2.0/resto/menu/nl-{resto}/{d.year}/{d.month}/{d.day}.json").json() menu = requests.get(f"https://zeus.ugent.be/hydra/api/2.0/resto/menu/nl-{resto}/{dag.year}/{dag.month}/{dag.day}.json").json()
if not menu["meals"]: if not menu["meals"]:
raise Exception() raise Exception()
@ -34,20 +44,14 @@ def etenScript(weekDag, resto: str = "sterre"):
if s["kind"] == "soup": if s["kind"] == "soup":
menuSoep += ("* {} ({})\n".format(s["name"], s["price"])) menuSoep += ("* {} ({})\n".format(s["name"], s["price"]))
for m in menu["meals"]: menuHoofdgerechten = get_type(menu, "main")
if m["kind"] == "meat": menuKoud = get_type(menu, "cold")
menuHoofdgerechten += ("* Vlees: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "fish":
menuHoofdgerechten += ("* Vis: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "vegetarian":
menuHoofdgerechten += ("* Vegetarisch: {} ({})\n".format(m["name"], m["price"]))
elif m["kind"] == "vegan":
menuHoofdgerechten += ("* Vegan: {} ({})\n".format(m["name"], m["price"]))
for v in menu["vegetables"]: for v in menu["vegetables"]:
menuGroenten += ("* {}\n".format(v)) menuGroenten += ("* {}\n".format(v))
except Exception: except Exception as e:
menuSoep += "Restaurant gesloten" menuSoep += "Restaurant gesloten"
menuGroenten += "Restaurant gesloten" menuGroenten += "Restaurant gesloten"
menuHoofdgerechten += "Restaurant gesloten" menuHoofdgerechten += "Restaurant gesloten"
return menuSoep, menuHoofdgerechten, menuGroenten menuKoud += "Restaurant gesloten"
return menuSoep, menuHoofdgerechten, menuKoud, menuGroenten