feat: RSS sync worker #91
Reference in New Issue
Block a user
Delete Branch "issue/27-rss-sync"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds the RSS lane: one empty-query Torznab call per indexer every ten minutes, matched against the whole wanted list locally (DESIGN.md §6.2). No backoff, no attempt counter, no release-date gate — those belong to targeted search, which pays per title.
blockedtitles keep matching RSS (§6.3).Matching lives in
arr-core::matching, pure and tested:&, punctuation) and requires the years to agree;Two refactors came with it: indexer discovery moved to
IndexerDirectoryand the send-to-Transmission path toGrabber, both shared with the grab lane rather than duplicated.imdbidis the id trackers supply most often, butmovieshas no IMDb column, so onlytmdbidis used. Filed as #92.Closes #27.
Verification
just cigreen locally: 260 tests, fmt, clippy, machete, web-check.Acceptance test
rss::tests::exactly_the_intended_titles_matchruns a recorded six-item feed against a three-title wanted list: the 2160p Dune: Part Two, the Spanish-titled release identified only bytmdbid, and Dune 2021 each grab once; the TV item and the unwanted film are stored nowhere.a_near_miss_is_not_grabbedseeds "Dune: Part Three" and grabs nothing.