2021-08-06 20:52:56 +02:00
from data import constants , schedule
2020-10-13 21:02:40 +02:00
from decorators import help
import discord
from discord . ext import commands
from enums . courses import years
from enums . help_categories import Category
2021-08-08 18:24:11 +02:00
from functions import checks , config , eten , les
from functions . timeFormatters import intToWeekday
2020-10-13 21:02:40 +02:00
import json
class School ( commands . Cog ) :
def __init__ ( self , client ) :
self . client = client
# Don't allow any commands to work when locked
def cog_check ( self , ctx ) :
return not self . client . locked
@commands.command ( name = " Eten " , aliases = [ " Food " , " Menu " ] , usage = " [Dag]* " )
2021-02-08 18:25:25 +01:00
# @commands.check(checks.allowedChannels)
2020-10-13 21:02:40 +02:00
@help.Category ( category = Category . School )
async def eten ( self , ctx , * day ) :
2021-08-08 18:24:11 +02:00
day_dt = les . find_target_date ( day if day else None )
day = intToWeekday ( day_dt . weekday ( ) )
2020-10-13 21:02:40 +02:00
# Create embed
menu = eten . etenScript ( day )
embed = discord . Embed ( colour = discord . Colour . blue ( ) )
embed . set_author ( name = " Menu voor {} " . format ( day ) )
if " gesloten " in menu [ 0 ] . lower ( ) :
embed . description = " Restaurant gesloten "
else :
embed . add_field ( name = " Soep: " , value = menu [ 0 ] , inline = False )
embed . add_field ( name = " Hoofdgerechten: " , value = menu [ 1 ] , inline = False )
if menu [ 2 ] :
embed . add_field ( name = " Groenten: " , 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. " )
await ctx . send ( embed = embed )
2020-10-23 21:34:10 +02:00
@commands.command ( name = " Les " , aliases = [ " Class " , " Classes " , " Sched " , " Schedule " ] , usage = " [Jaargang]* [Dag]* " )
2021-02-08 18:25:25 +01:00
# @commands.check(checks.allowedChannels)
2020-10-13 21:02:40 +02:00
@help.Category ( category = Category . School )
2021-08-06 20:52:56 +02:00
async def les ( self , ctx , day = None ) :
2021-08-08 18:24:11 +02:00
date = les . find_target_date ( day )
2021-08-08 18:12:16 +02:00
s = schedule . Schedule ( date , int ( config . get ( " year " ) ) , int ( config . get ( " semester " ) ) , day is not None )
return await ctx . send ( embed = s . create_schedule ( ) . to_embed ( ) )
2020-10-13 21:02:40 +02:00
2021-02-08 18:46:15 +01:00
@commands.command ( name = " Pin " , usage = " [Message] " )
@help.Category ( category = Category . School )
async def pin ( self , ctx , message : discord . Message ) :
# In case people abuse, check if they're blacklisted
blacklist = [ ]
if ctx . author . id in blacklist :
return
2021-06-02 15:52:53 +02:00
if message . is_system ( ) :
return await ctx . send ( " Dus jij wil system messages pinnen? \n Mag niet. " )
2021-02-08 18:46:15 +01:00
await message . pin ( reason = " Didier Pin door {} " . format ( ctx . author . display_name ) )
2021-06-02 15:52:53 +02:00
await ctx . message . add_reaction ( " ✅ " )
2021-02-08 18:46:15 +01:00
2020-10-13 21:02:40 +02:00
def setup ( client ) :
client . add_cog ( School ( client ) )