agenda/agenda
Edward Betts 9f881d7177 Fix SpaceDevs rate-limiting and cache corruption from throttled responses
Don't write rate-limit/error responses to disk in next_launch_api_data,
so they can't become the "most recent" cache file and cause KeyError crashes
in read_cached_launches. Add defensive results-list checks in
read_cached_launches and get_launches to handle any existing bad files.

Drop refresh=True from the updater's get_active_crewed_flights call so the
2-hour TTL applies; the paginated spacecraft/flight crawl was running on
every hourly cron job and likely causing the burst that triggered throttling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 20:50:05 +00:00
..
__init__.py Code formatting with black 2025-07-18 09:47:02 +02:00
accommodation.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
airbnb.py Update airbnb parse previous airbnb stays. 2025-07-18 11:08:34 +02:00
birthday.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
bristol_waste.py More support for offline_mode 2024-11-04 09:59:55 +00:00
busy.py Fix mypy type errors in trip helpers 2026-01-15 22:53:10 +00:00
calendar.py Fix mypy type errors in trip helpers 2026-01-15 22:53:10 +00:00
carnival.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
conference.py Add attend_start/attend_end fields for partial conference attendance. 2026-02-18 18:14:27 +00:00
data.py Track dates of English school holidays 2026-02-21 18:05:19 +00:00
domains.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
economist.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
error_mail.py Send error mail to admin 2023-12-07 17:15:58 +00:00
event.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
events_yaml.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
fx.py Handle FX rate timeouts. 2025-02-18 00:46:36 +00:00
gandi.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
geomob.py Add comprehensive tests and fix geomob URL bug 2025-07-20 01:31:19 +02:00
gwr.py Add offline mode 2024-10-31 11:13:55 +01:00
hn.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
holidays.py Track dates of English school holidays 2026-02-21 18:05:19 +00:00
ical.py Serve conferences in iCalendar format. 2025-11-14 15:40:05 +00:00
mail.py Move send_mail() to own module 2024-07-08 10:44:39 +01:00
meetup.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
meteors.py Types 2025-08-01 06:21:22 +01:00
n_somerset_waste.py More support for offline_mode 2024-11-04 09:59:55 +00:00
py.typed Add py.typed 2023-11-05 12:17:01 +00:00
schengen.py Move two functions to agenda/trip.py 2025-11-03 12:36:13 +00:00
spacexdata.py Initial commit 2023-10-02 23:45:14 +01:00
stats.py Add overall airline, airport, and station stats to trip summary 2026-02-03 09:25:10 +00:00
stock_market.py The pandas module has type info. 2025-11-03 19:30:57 +00:00
subscription.py Split 'class Event' into its own file 2024-10-01 11:13:39 +01:00
sun.py tell mypy to ignore the lack of types for ephem module 2024-07-18 14:22:55 +09:00
thespacedevs.py Fix SpaceDevs rate-limiting and cache corruption from throttled responses 2026-02-21 20:50:05 +00:00
travel.py Prefer ICAO flight number for some airlines 2025-04-28 12:13:23 +03:00
trip.py Refactor bus/coach loading and rendering to share code. 2026-02-18 12:52:28 +00:00
trip_schengen.py Remove unused code. 2025-11-03 19:31:14 +00:00
types.py Refactor bus/coach loading and rendering to share code. 2026-02-18 12:52:28 +00:00
uk_holiday.py Refactor 2024-01-16 11:35:38 +00:00
uk_school_holiday.py Track dates of English school holidays 2026-02-21 18:05:19 +00:00
utils.py Bug fix 2025-11-03 19:39:28 +00:00
weather.py Add OpenWeatherMap weather forecasts. Closes #48 2026-02-21 20:27:25 +00:00