Skip to content

Add date selection to Billboard downloader - #345

Open
alexdej wants to merge 1 commit into
thisisparker:mainfrom
alexdej:billboard-date-picker
Open

alexdej wants to merge 1 commit into
thisisparker:mainfrom
alexdej:billboard-date-picker

Conversation

@alexdej

@alexdej alexdej commented May 9, 2026

Copy link
Copy Markdown
Contributor

Billboard stopped publishing new puzzles after February 10, 2026. The full archive (October 2, 2025 – February 10, 2026, 95 puzzles) is still available via the AmuseLabs API.

Changes:

  • BillboardDownloader: implement find_by_date() to look up puzzles from the AmuseLabs archive API using a load token extracted from the picker page; puzzle IDs contain an unpredictable title slug so they cannot be constructed from the date alone. the archive index is cached (functools.cached_property) so that it is not refetched for multiple find_by_date calls (when xword-dl is used as a library for bulk download).
  • BillboardDownloader: find_latest() now raises an informative error directing users to --date with the full archive date range
  • AmuseLabsDownloader: use bare requests.get for picker page fetches to avoid session/cookie interference; fall back to rawsps.id when streakInfo is empty; remove fvlt token computation that caused 'Load not verified' errors on some outlets
  • README: mark Billboard as date-searchable rather than latest-only
  • CI: replace 'test latest' step with 'test by date' (Feb 10, 2026)

Fixes #340

Billboard stopped publishing new puzzles after February 10, 2026.
The full archive (October 2, 2025 – February 10, 2026, 95 puzzles)
is still available via the AmuseLabs API.

Changes:
- BillboardDownloader: implement find_by_date() to look up puzzles
  from the AmuseLabs archive API using a load token extracted from
  the picker page; puzzle IDs contain an unpredictable title slug so
  they cannot be constructed from the date alone
- BillboardDownloader: find_latest() now raises an informative error
  directing users to --date with the full archive date range
- AmuseLabsDownloader: use bare requests.get for picker page fetches
  to avoid session/cookie interference; fall back to rawsps.id when
  streakInfo is empty; remove fvlt token computation that caused
  'Load not verified' errors on some outlets
- README: mark Billboard as date-searchable rather than latest-only
- CI: replace 'test latest' step with 'test by date' (Feb 10, 2026)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Billboard not downloading: "Unable to find puzzles data from picker page."

1 participant