Add refresh option for Bristol waste schedule
This commit is contained in:
parent
7456f72325
commit
199eb82bce
|
@ -104,7 +104,9 @@ def parse(root: lxml.html.HtmlElement) -> list[Event]:
|
|||
BristolSchedule = list[dict[str, typing.Any]]
|
||||
|
||||
|
||||
async def get_bristol_data(data_dir: str, uprn: str) -> BristolSchedule:
|
||||
async def get_bristol_data(
|
||||
data_dir: str, uprn: str, refresh: bool = False
|
||||
) -> BristolSchedule:
|
||||
"""Get Bristol Waste schedule, with cache."""
|
||||
now = datetime.now()
|
||||
waste_dir = os.path.join(data_dir, "waste")
|
||||
|
@ -122,7 +124,7 @@ async def get_bristol_data(data_dir: str, uprn: str) -> BristolSchedule:
|
|||
json_data = json.load(open(os.path.join(waste_dir, recent_filename)))
|
||||
return typing.cast(BristolSchedule, json_data["data"])
|
||||
|
||||
if existing and delta < timedelta(hours=ttl_hours):
|
||||
if not refresh and existing and delta < timedelta(hours=ttl_hours):
|
||||
return get_from_recent()
|
||||
|
||||
try:
|
||||
|
@ -186,9 +188,11 @@ async def get_bristol_gov_uk_data(uprn: str) -> httpx.Response:
|
|||
return response
|
||||
|
||||
|
||||
async def get_bristol_gov_uk(start_date: date, data_dir: str, uprn: str) -> list[Event]:
|
||||
async def get_bristol_gov_uk(
|
||||
start_date: date, data_dir: str, uprn: str, refresh: bool = False
|
||||
) -> list[Event]:
|
||||
"""Get waste collection schedule from Bristol City Council."""
|
||||
data = await get_bristol_data(data_dir, uprn)
|
||||
data = await get_bristol_data(data_dir, uprn, refresh)
|
||||
|
||||
by_date: defaultdict[date, list[str]] = defaultdict(list)
|
||||
|
||||
|
|
Loading…
Reference in a new issue