calc from correct year, even if still running in january

This commit is contained in:
Stefan Harmuth 2024-01-07 19:58:53 +01:00
parent 5b06d59c93
commit 444e5f3056
2 changed files with 14 additions and 10 deletions

View File

@ -2,6 +2,10 @@
Announce gained stars from private leaderboard into IRC Channel
# Requirements
Python >= 3.8
# Usage
- Clone repository

View File

@ -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(
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},
).content
)
).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] = {}