From 000001806d78d7dc3d33c85a265a52121b52df93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Tue, 9 Dec 2025 00:58:01 +0100 Subject: [PATCH] feat: handle error when fetching file for future day --- aoc/input_file.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/aoc/input_file.py b/aoc/input_file.py index 2af6097..430e256 100644 --- a/aoc/input_file.py +++ b/aoc/input_file.py @@ -1,3 +1,4 @@ +import datetime import pathlib import requests @@ -15,8 +16,21 @@ def download(year: int, day: int, session_token: str | None) -> bytes: response = requests.get(url, cookies=cookies) if response.status_code != 200: + status = response.status_code + + # https://stackoverflow.com/a/39079819/11286805 + local_tz = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo + + now = datetime.datetime.now(local_tz) + release = datetime.datetime(year, 12, day, 5, tzinfo=datetime.UTC) + + if now < release: + raise exceptions.AocError( + f"unreleased input file {year}/{day:02} (http:{status})" + ) + raise exceptions.AocError( - f"failed to fetch input file {year}/{day:02} (http:{response.status_code})" + f"failed to fetch input file {year}/{day:02} (http:{status})" " - is AOC_SESSION_TOKEN environment variable set?" )