Skip to content

fix(epignosis): metadata provider correctness (TVDB cache, TMDB cross-ref, AcoustID) - #494

Merged
forkwright merged 1 commit into
mainfrom
fix/epignosis-metadata
Jul 2, 2026
Merged

fix(epignosis): metadata provider correctness (TVDB cache, TMDB cross-ref, AcoustID)#494
forkwright merged 1 commit into
mainfrom
fix/epignosis-metadata

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Closes #416, #417, #471, #458. TVDB bearer-token caching; TMDB /find external-id cross-reference (fixes ID-namespace bug, fails closed on miss); AcoustID fpcalc fingerprinting (typed failures, no panic); OpenSubtitles hash known-answer tests. kanon gate --full green.

…-ref, AcoustID)

- #416: TvdbProvider caches its bearer token (double-checked RwLock, 24h
  TTL) instead of doing a fresh login on every search and get_metadata.
- #417: TV secondary enrichment cross-references the TVDB id through TMDB's
  /find/{id}?external_source=tvdb_id and fetches /tv/{id} in the correct
  namespace, instead of feeding a TVDB id into /movie/{id}; fails closed to
  None on a find miss.
- #471: AcoustIdProvider computes a real chromaprint fingerprint via the
  fpcalc subprocess (runtime probe, kill_on_drop) and feeds it to the
  lookup; every subprocess/parse failure is a typed error, never a panic.
- #458: known-answer tests for the OpenSubtitles compute_file_hash algorithm
  (and a corrected doc comment: wrapping sum, not XOR).

Closes #416
Closes #417
Closes #471
Closes #458

Gate-Passed: kanon 0.1.5 +stages:fmt,check,clippy,nextest,lint sha:8b3f93309bfed764e026cc59556dac18645934a1
@forkwright
forkwright merged commit 58efa38 into main Jul 2, 2026
11 checks passed
@forkwright
forkwright deleted the fix/epignosis-metadata branch July 2, 2026 15:28
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.

TvdbProvider::bearer_token() issues a fresh HTTP login on every search and get_metadata call

1 participant