generated from public/aoc_template
calc from correct year, even if still running in january
This commit is contained in:
parent
5b06d59c93
commit
444e5f3056
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
Announce gained stars from private leaderboard into IRC Channel
|
Announce gained stars from private leaderboard into IRC Channel
|
||||||
|
|
||||||
|
# Requirements
|
||||||
|
|
||||||
|
Python >= 3.8
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
- Clone repository
|
- Clone repository
|
||||||
|
|||||||
20
aoc_bot.py
20
aoc_bot.py
@ -46,14 +46,12 @@ class AOCBot:
|
|||||||
print("CONFIGURATION ERROR: %s" % e)
|
print("CONFIGURATION ERROR: %s" % e)
|
||||||
|
|
||||||
def fetch_leaderboard(self, year: int = datetime.now().year) -> dict:
|
def fetch_leaderboard(self, year: int = datetime.now().year) -> dict:
|
||||||
return json.loads(
|
return requests.get(
|
||||||
requests.get(
|
"https://adventofcode.com/%d/leaderboard/private/view/%s.json"
|
||||||
"https://adventofcode.com/%d/leaderboard/private/view/%s.json"
|
% (year, self.__aoc_group_id),
|
||||||
% (year, self.__aoc_group_id),
|
headers={"User-Agent": self.__aoc_user_agent},
|
||||||
headers={"User-Agent": self.__aoc_user_agent},
|
cookies={"session": self.__aoc_session_id},
|
||||||
cookies={"session": self.__aoc_session_id},
|
).json()
|
||||||
).content
|
|
||||||
)
|
|
||||||
|
|
||||||
def command_info(self, msg_from: str, message: str):
|
def command_info(self, msg_from: str, message: str):
|
||||||
self.__irc_bot.privmsg(
|
self.__irc_bot.privmsg(
|
||||||
@ -186,10 +184,12 @@ class AOCBot:
|
|||||||
def update_leaderboard(self):
|
def update_leaderboard(self):
|
||||||
try:
|
try:
|
||||||
new_leaderboard = self.fetch_leaderboard()
|
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 ...
|
return # didn't work this time? Well, we'll just try again in 15min ...
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
aoc_year = now.year if now.month == 12 else now.year - 1
|
||||||
|
|
||||||
new_stars = {}
|
new_stars = {}
|
||||||
for member, member_data in new_leaderboard["members"].items():
|
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]["score"] = int(member_data["local_score"])
|
||||||
self.__cache_data[member]["stars"] = int(member_data["stars"])
|
self.__cache_data[member]["stars"] = int(member_data["stars"])
|
||||||
for day in member_data["completion_day_level"]:
|
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"]:
|
if day not in self.__cache_data[member]["days"]:
|
||||||
self.__cache_data[member]["days"][day] = {}
|
self.__cache_data[member]["days"][day] = {}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user