When Trakt returns a non-404 error (e.g. 403) for a tmdbId lookup,
fetch the imdbId from TMDB's /external_ids endpoint and retry the
Trakt call using the imdbId. Trakt often knows a movie/show by its
imdbId even when it does not recognise the tmdbId.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Trakt returns 403 (not 404) for tmdb IDs it doesn't have in its
database. This is expected behavior, not an application error, so
logging at WARN avoids false alarm noise in production logs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docker/build-and-push.sh: build and push image to forge registry from
any machine with Docker (run directly on Unraid terminal)
- docker/act_runner.compose.yml: Gitea act_runner setup to automate
Docker builds via Gitea Actions on Unraid
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dockerfile: replace s6overlay with multi-stage build (golang:1.22-alpine
builder + alpine:3.19 runtime), compiles from source, no goreleaser needed
- docker/entrypoint.sh: PUID/PGID support via su-exec
- .gitea/workflows/docker.yml: auto-build and push to Gitea container
registry on every master commit (linux/amd64 + linux/arm64)
- README: add tmdb api_key docs, update Docker section to point to
forge.dilain.com registry, add Unraid setup section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Items from RSS feeds that have no media ID (tmdb/imdb/tvdb) are now
enriched automatically using TMDB's search API. The release name is
parsed to extract a clean title and year, then searched against TMDB
to retrieve the TMDB ID before validation.
- Add media/tmdb package with SearchMovies, SearchShows, and
ExtractTitleAndYear (parses torrent release names)
- Add EnrichFeedItemWithTmdbId to media.Client, called in rss/process.go
before the ID validation switch
- Add --run-now flag to nabarr run to trigger all feeds immediately
- Wire media.Client through rss.Client and rssJob
- Merge feature/add-tag-option (tag support for Sonarr/Radarr)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>