Add offline mode
This commit is contained in:
parent
9f1f64708f
commit
eaa6369dc9
|
@ -182,8 +182,11 @@ async def get_data(now: datetime, config: flask.config.Config) -> AgendaData:
|
||||||
plus_365 = now + timedelta(days=365)
|
plus_365 = now + timedelta(days=365)
|
||||||
|
|
||||||
t0 = time()
|
t0 = time()
|
||||||
|
offline_mode = bool(config.get("OFFLINE_MODE"))
|
||||||
result_list = await asyncio.gather(
|
result_list = await asyncio.gather(
|
||||||
time_function("gwr_advance_tickets", gwr.advance_ticket_date, data_dir),
|
time_function(
|
||||||
|
"gwr_advance_tickets", gwr.advance_ticket_date, data_dir, offline_mode
|
||||||
|
),
|
||||||
time_function(
|
time_function(
|
||||||
"backwell_bins",
|
"backwell_bins",
|
||||||
n_somerset_waste_collection_events,
|
n_somerset_waste_collection_events,
|
||||||
|
|
|
@ -48,11 +48,13 @@ def extract_weekday_date(html: str) -> date | None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
async def advance_tickets_page_html(data_dir: str, ttl: int = 60 * 60 * 6) -> str:
|
async def advance_tickets_page_html(
|
||||||
|
data_dir: str, ttl: int = 60 * 60 * 6, force_cache: bool = False
|
||||||
|
) -> str:
|
||||||
"""Get advance-tickets web page HTML with cache."""
|
"""Get advance-tickets web page HTML with cache."""
|
||||||
filename = os.path.join(data_dir, "advance-tickets.html")
|
filename = os.path.join(data_dir, "advance-tickets.html")
|
||||||
mtime = os.path.getmtime(filename) if os.path.exists(filename) else 0
|
mtime = os.path.getmtime(filename) if os.path.exists(filename) else 0
|
||||||
if (time() - mtime) < ttl: # use cache
|
if force_cache or (time() - mtime) < ttl: # use cache
|
||||||
return open(filename).read()
|
return open(filename).read()
|
||||||
async with httpx.AsyncClient() as client:
|
async with httpx.AsyncClient() as client:
|
||||||
r = await client.get(url)
|
r = await client.get(url)
|
||||||
|
@ -61,7 +63,7 @@ async def advance_tickets_page_html(data_dir: str, ttl: int = 60 * 60 * 6) -> st
|
||||||
return html
|
return html
|
||||||
|
|
||||||
|
|
||||||
async def advance_ticket_date(data_dir: str) -> date | None:
|
async def advance_ticket_date(data_dir: str, force_cache: bool = False) -> date | None:
|
||||||
"""Get GWR advance tickets date with cache."""
|
"""Get GWR advance tickets date with cache."""
|
||||||
html = await advance_tickets_page_html(data_dir)
|
html = await advance_tickets_page_html(data_dir, force_cache=force_cache)
|
||||||
return extract_weekday_date(html)
|
return extract_weekday_date(html)
|
||||||
|
|
Loading…
Reference in a new issue