mirror of https://github.com/stijndcl/didier
				
				
				
			Show custom embed for weekends
							parent
							
								
									a198a83153
								
							
						
					
					
						commit
						e9ea063876
					
				| 
						 | 
				
			
			@ -4,7 +4,8 @@ import discord
 | 
			
		|||
from discord.ext import commands
 | 
			
		||||
from enums.help_categories import Category
 | 
			
		||||
from functions import config, eten, les
 | 
			
		||||
from functions.timeFormatters import intToWeekday
 | 
			
		||||
from functions.stringFormatters import capitalize
 | 
			
		||||
from functions.timeFormatters import intToWeekday, skip_weekends
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class School(commands.Cog):
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +22,7 @@ class School(commands.Cog):
 | 
			
		|||
    @help.Category(category=Category.School)
 | 
			
		||||
    async def eten(self, ctx, *day):
 | 
			
		||||
        day_dt = les.find_target_date(day if day else None)
 | 
			
		||||
        day_dt = skip_weekends(day_dt)
 | 
			
		||||
        day = intToWeekday(day_dt.weekday())
 | 
			
		||||
 | 
			
		||||
        # Create embed
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +46,13 @@ class School(commands.Cog):
 | 
			
		|||
    @help.Category(category=Category.School)
 | 
			
		||||
    async def les(self, ctx, day=None):
 | 
			
		||||
        date = les.find_target_date(day)
 | 
			
		||||
 | 
			
		||||
        # Person explicitly requested a weekend-day
 | 
			
		||||
        if day is not None and day.lower() in ("morgen", "overmorgen") and date.weekday() > 4:
 | 
			
		||||
            return await ctx.send(f"{capitalize(day)} is het weekend.")
 | 
			
		||||
 | 
			
		||||
        date = skip_weekends(date)
 | 
			
		||||
 | 
			
		||||
        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())
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
from datetime import datetime, timedelta
 | 
			
		||||
from functions.timeFormatters import dateTimeNow, weekdayToInt, forward_to_weekday
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def find_target_date(arg: Optional[str]) -> datetime:
 | 
			
		||||
    """
 | 
			
		||||
    Find the requested date out of the user's arguments
 | 
			
		||||
    """
 | 
			
		||||
    # Start at current date
 | 
			
		||||
    day: datetime = dateTimeNow()
 | 
			
		||||
 | 
			
		||||
    # If no offset was provided, check the time
 | 
			
		||||
    # otherwise the argument overrides it
 | 
			
		||||
    if arg is None:
 | 
			
		||||
        # When the command is used after 6 pm, show schedule
 | 
			
		||||
        # for the next day instead
 | 
			
		||||
        if day.hour > 18:
 | 
			
		||||
            day += timedelta(days=1)
 | 
			
		||||
    elif 0 <= (weekday := weekdayToInt(arg)) <= 4:  # Weekday provided
 | 
			
		||||
        day = forward_to_weekday(day, weekday)
 | 
			
		||||
    elif arg.lower() == "morgen":  # Tomorrow's schedule
 | 
			
		||||
        day += timedelta(days=1)
 | 
			
		||||
    elif arg.lower() == "overmorgen":  # Day after tomorrow's schedule
 | 
			
		||||
        day += timedelta(days=2)
 | 
			
		||||
 | 
			
		||||
    return day
 | 
			
		||||
		Loading…
	
		Reference in New Issue