|
|
@@ -1,6 +1,7 @@
|
|
|
-from datetime import date, datetime, time, timedelta
|
|
|
+from datetime import date, datetime, time, timedelta, timezone
|
|
|
import asyncio
|
|
|
from attrs import frozen
|
|
|
+from zoneinfo import ZoneInfo
|
|
|
|
|
|
from de_quoi_parle_le_monde.http import HttpClient
|
|
|
from de_quoi_parle_le_monde.internet_archive import (
|
|
|
@@ -17,9 +18,12 @@ class ArchiveDownloader:
|
|
|
|
|
|
@staticmethod
|
|
|
def last_n_days_at_hours(n: int, hours: list[int]) -> list[datetime]:
|
|
|
+ def local_time(h):
|
|
|
+ return time(hour=h, tzinfo=ZoneInfo("Europe/Paris"))
|
|
|
+
|
|
|
return [
|
|
|
- datetime.combine(date.today() - timedelta(days=i), time(hour=h))
|
|
|
- for i in range(1, n)
|
|
|
+ datetime.combine(date.today() - timedelta(days=i), local_time(h)).astimezone(timezone.utc)
|
|
|
+ for i in range(0, n)
|
|
|
for h in hours
|
|
|
]
|
|
|
|
|
|
@@ -60,7 +64,7 @@ class ArchiveDownloader:
|
|
|
|
|
|
async def main(dler: ArchiveDownloader):
|
|
|
storage = await Storage.create()
|
|
|
- dts = ArchiveDownloader.last_n_days_at_hours(10, [18])
|
|
|
+ dts = ArchiveDownloader.last_n_days_at_hours(10, [8, 12, 18, 22])
|
|
|
|
|
|
async with dler.client.session() as session:
|
|
|
ia = InternetArchiveClient(session)
|