Skip to content

0.7.0: play-by-play, TV listings, rent and buy, and posters for the IMDb titles - #48

Merged
ralyodio merged 4 commits into
mainfrom
phase2-gaps
Sep 10, 2026
Merged

ralyodio merged 4 commits into
mainfrom
phase2-gaps

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

The three things tipoffwatch and genrewatch would have lost by reading nichedb instead of the providers themselves, plus the one thing genrewatch's IMDb pass did that nichedb did not.

espn-plays (sports, kind plays): the ESPN summary for every fixture in play or ended in the last six hours, eight summaries a run every two minutes, which is the line tipoffwatch already held. One item per fixture: the last 400 plays while the game is on, the whole log and the box score, leaders, officials and closing line once final.

sportsdb-tv (sports, kind broadcast): TheSportsDB's day listings, one item per event, channel and market, fourteen days ahead, one request a day on a paid key. ESPN's broadcast field is US-only; this is where "7 Queensland" for an AFL game comes from. The team-name matching stays with the mirror.

tmdb-releases: keeps watch (flat-rate, six) and adds providers: { stream, rent, buy } (eight each) plus services on every release row.

tmdb-artwork (enricher, screen): a title from the IMDb dumps has no poster, synopsis or TMDB id; TMDB's find endpoint answers all three from the tconst. A miss is remembered. Migration 0015 clears the enriched stamp on the 430k IMDb-only titles that landed before the collection had an enricher, and ENRICH_PER_COLLECTION makes the per-tick share configurable (8 a tick was two months of backlog; Railway is set to 30, about fifteen days).

Contract updated in docs/consolidation.md. 783 tests pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_014X1XCwt5iD3nqZfbddZqEP

ralyodio and others added 4 commits September 10, 2026 14:44
…and IMDb titles get their posters

Three things tipoffwatch and genrewatch would have lost by reading
nichedb instead of the providers themselves.

espn-plays reads the ESPN summary for every fixture in play, or ended
in the last six hours, eight summaries a run every two minutes, which
is the line tipoffwatch already held. One item per fixture: the last
400 plays while the game is on, the whole log and the box score,
leaders, officials and closing line once it is final.

tmdb-releases keeps the flat-rate list it had and adds the region's
subscription, rent and buy providers apart, and every release row says
which shops carry it, so "included where I subscribe" and "available
to rent" stay two questions.

tmdb-artwork is an enricher for the screen collection: a title that
came in from the IMDb dumps has no poster, synopsis or TMDB id, and
TMDB's find endpoint answers all three from the tconst. Nothing found
is remembered too, so a miss costs one request. The per-collection
share of a tick is configurable now (ENRICH_PER_COLLECTION), since the
backlog is 430,000 titles and eight a tick would take two months.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014X1XCwt5iD3nqZfbddZqEP
…ce more

An item nothing applies to is stamped enriched anyway, so a miss costs
one look. The IMDb dumps landed 430,000 titles while the screen
collection had no enricher, and every one of them wears that stamp;
tmdb-artwork would only ever have seen the new ones. The migration
clears it where the enricher has something to add: a title with no
picture from the one source that never carries one.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014X1XCwt5iD3nqZfbddZqEP
ESPN's broadcast field is US-only and partial even there: the AFL was
0 for 9 the day tipoffwatch measured it. tipoffwatch filled the gap
from TheSportsDB's day listings and matched them to its fixtures by
team name. The fetching moves here as sportsdb-tv: one item per event,
channel and market, fourteen days ahead, one request a day on a paid
key. The shared key answers one row a query, which is why the paid
one is on the service. The matching stays with the mirror, which
knows its own fixtures.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014X1XCwt5iD3nqZfbddZqEP
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014X1XCwt5iD3nqZfbddZqEP
@ralyodio
ralyodio merged commit c30848a into main Sep 10, 2026
3 checks passed
@ralyodio
ralyodio deleted the phase2-gaps branch September 10, 2026 14:50
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.

1 participant