From 444e5f3056e61a042c636ee7753811184fd71211 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Sun, 7 Jan 2024 19:58:53 +0100 Subject: [PATCH] calc from correct year, even if still running in january --- README.md | 4 ++++ aoc_bot.py | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 31b51ef..117b63d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ Announce gained stars from private leaderboard into IRC Channel +# Requirements + +Python >= 3.8 + # Usage - Clone repository diff --git a/aoc_bot.py b/aoc_bot.py index 0181f8a..1747f26 100644 --- a/aoc_bot.py +++ b/aoc_bot.py @@ -46,14 +46,12 @@ class AOCBot: print("CONFIGURATION ERROR: %s" % e) def fetch_leaderboard(self, year: int = datetime.now().year) -> dict: - return json.loads( - requests.get( - "https://adventofcode.com/%d/leaderboard/private/view/%s.json" - % (year, self.__aoc_group_id), - headers={"User-Agent": self.__aoc_user_agent}, - cookies={"session": self.__aoc_session_id}, - ).content - ) + return requests.get( + "https://adventofcode.com/%d/leaderboard/private/view/%s.json" + % (year, self.__aoc_group_id), + headers={"User-Agent": self.__aoc_user_agent}, + cookies={"session": self.__aoc_session_id}, + ).json() def command_info(self, msg_from: str, message: str): self.__irc_bot.privmsg( @@ -186,10 +184,12 @@ class AOCBot: def update_leaderboard(self): try: new_leaderboard = self.fetch_leaderboard() - except Exception: + except Exception as e: + print("Updating leaderboard failed: %s" % e) return # didn't work this time? Well, we'll just try again in 15min ... now = datetime.now() + aoc_year = now.year if now.month == 12 else now.year - 1 new_stars = {} for member, member_data in new_leaderboard["members"].items(): @@ -203,7 +203,7 @@ class AOCBot: self.__cache_data[member]["score"] = int(member_data["local_score"]) self.__cache_data[member]["stars"] = int(member_data["stars"]) for day in member_data["completion_day_level"]: - day_start = datetime(now.year, 12, int(day), 6, 0, 0) + day_start = datetime(aoc_year, 12, int(day), 6, 0, 0) if day not in self.__cache_data[member]["days"]: self.__cache_data[member]["days"][day] = {}