From 20a9b4a7b94d11d89fba35637b2c9633035b8109 Mon Sep 17 00:00:00 2001
From: dnns01 <git@dnns01.de>
Date: Tue, 27 Dec 2022 14:41:48 +0100
Subject: [PATCH] Cleanup forecasts to show only current weeks forecast and
 highlight today in forecast

---
 extensions/schedule.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/extensions/schedule.py b/extensions/schedule.py
index 1e9859d..b753fea 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))
-- 
GitLab