diff --git a/agenda/data.py b/agenda/data.py index ae050bd..b7f9cb8 100644 --- a/agenda/data.py +++ b/agenda/data.py @@ -15,7 +15,6 @@ import pytz from . import ( accommodation, birthday, - bristol_waste, busy, carnival, conference, @@ -27,13 +26,13 @@ from . import ( hn, holidays, meetup, - n_somerset_waste, stock_market, subscription, sun, thespacedevs, travel, uk_holiday, + waste_schedule, ) from .types import Event, StrDict @@ -63,9 +62,9 @@ async def waste_collection_events( data_dir: str, postcode: str, uprn: str ) -> list[Event]: """Waste colllection events.""" - html = await n_somerset_waste.get_html(data_dir, postcode, uprn) + html = await waste_schedule.get_html(data_dir, postcode, uprn) root = lxml.html.fromstring(html) - events = n_somerset_waste.parse(root) + events = waste_schedule.parse(root) return events @@ -73,7 +72,7 @@ async def bristol_waste_collection_events( data_dir: str, start_date: date, uprn: str ) -> list[Event]: """Waste colllection events.""" - return await bristol_waste.get(start_date, data_dir, uprn) + return await waste_schedule.get_bristol_gov_uk(start_date, data_dir, uprn) def find_events_during_stay( diff --git a/agenda/n_somerset_waste.py b/agenda/n_somerset_waste.py deleted file mode 100644 index 4621b2e..0000000 --- a/agenda/n_somerset_waste.py +++ /dev/null @@ -1,91 +0,0 @@ -"""Waste collection schedules.""" - -import os -import re -from collections import defaultdict -from datetime import date, datetime, time, timedelta - -import httpx -import lxml.html - -from . import uk_time -from .types import Event -from .utils import make_waste_dir - -ttl_hours = 12 - - -async def get_html(data_dir: str, postcode: str, uprn: str) -> str: - """Get waste schedule.""" - now = datetime.now() - waste_dir = os.path.join(data_dir, "waste") - - make_waste_dir(data_dir) - - existing_data = os.listdir(waste_dir) - existing = [f for f in existing_data if f.endswith(".html")] - if existing: - recent_filename = max(existing) - recent = datetime.strptime(recent_filename, "%Y-%m-%d_%H:%M.html") - delta = now - recent - - if existing and delta < timedelta(hours=ttl_hours): - return open(os.path.join(waste_dir, recent_filename)).read() - - now_str = now.strftime("%Y-%m-%d_%H:%M") - filename = f"{waste_dir}/{now_str}.html" - - forms_base_url = "https://forms.n-somerset.gov.uk" - url = "https://forms.n-somerset.gov.uk/Waste/CollectionSchedule" - async with httpx.AsyncClient() as client: - r = await client.post( - url, - data={ - "PreviousHouse": "", - "PreviousPostcode": "-", - "Postcode": postcode, - "SelectedUprn": uprn, - }, - ) - form_post_html = r.text - pattern = r'
| {{event.as_date.strftime("%a, %d, %b %Y")}} | +{{event.as_date.strftime("%a, %d, %b")}} | {{ event.title }} |