diff --git a/extensions/schedule.py b/extensions/schedule.py index 1e9859d9710dae9ab0db3f07bd9a61a314f4ec4d..b753feac941a7c7248166dd7ed8d640106b98b05 100644 --- a/extensions/schedule.py +++ b/extensions/schedule.py @@ -122,6 +122,7 @@ class TwitchSchedule(commands.GroupCog, name="schedule"): end_day = start_day + timedelta(days=6) schedule_channel = await self.bot.fetch_channel(int(os.getenv("SCHEDULE_CHANNEL"))) + await self.cleanup_forecast(schedule_channel) week_schedule = Schedule.get_or_none(calendar_week=calendar_week, calendar_year=start_day.year) embed = discord.Embed(title=f"Contentvorhersage für die {calendar_week}. Kalenderwoche", @@ -133,6 +134,10 @@ class TwitchSchedule(commands.GroupCog, name="schedule"): while curr_day <= end_day: name = f"{get_weekday(curr_day)} {curr_day.strftime('%d.%m.%Y')}" value = "" + + if curr_day.day == datetime.now().day: + name = f">> {name} <<" + for segment in ScheduleSegment.select() \ .where(ScheduleSegment.start_time.between(curr_day, (curr_day + timedelta(days=1)))) \ .order_by(ScheduleSegment.start_time): @@ -175,6 +180,18 @@ class TwitchSchedule(commands.GroupCog, name="schedule"): remove_cancelled_streams(user, schedule.segments) + async def cleanup_forecast(self, schedule_channel): + now = datetime.now() + calendar = now.isocalendar() + + for schedule in Schedule.select().where(Schedule.calendar_week <= calendar.week - 1): + try: + message = await schedule_channel.fetch_message(schedule.message_id) + await message.delete() + except: + pass + schedule.delete_instance(recursive=True) + async def setup(bot: commands.Bot) -> None: await bot.add_cog(TwitchSchedule(bot))