feat(trackers): detect and skip renamed/modified releases#157
feat(trackers): detect and skip renamed/modified releases#157nitrobass24 wants to merge 2 commits into
Conversation
Trackers reject uploads whose source file was renamed away from its original scene/P2P release name (e.g. a library manager rewriting Fury.2014...H.265-HHWEB to spaces). Detect this before upload and skip the affected trackers, reusing the existing rule-failure skip + override machinery so it applies across all tracker families, not just UNIT3D. isRenamedRelease flags a grouped, non-personal, non-disc source whose on-disk name (source path or primary video file) has whitespace and a trailing -GROUP tag, excluding parenthesis/bracket library names so Plex/Radarr folders are not false-positived. The check runs at the top of EvaluateRules for every tracker (MANUAL exempt) and preserves the nil return contract so pre-existing failures (e.g. audio_bloat) are kept. Detecting remux/altered files that keep a clean name is out of scope.
|
Warning Review limit reached
More reviews will be available in 18 minutes and 4 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…elease # Conflicts: # internal/trackers/rules.go
|
In UA, I had a catch like this. We could brute force some scene detection, which would not only find filename modifications, but also catch scene status for scene releases that have filenames that do not match releasenames. I can't recall the exact details, but there's something with But when having the imdb, And then the pre-existing details url (with pre-matching to catch the correct release), can be used to fetch the actual filename of the release: Anyway, the scene stuff is just an idea, but the specific *arr handling should be included here imo. Cheers. |
Problem
Uploads are being rejected by trackers (e.g. LST) with
[Modified Release] Renamed: ...when the source file on disk is a renamed copy of the original P2P release — dots replaced with spaces (Fury.2014.2160p.MA.WEB-DL.DDP5.1.HDR.H.265-HHWEB.mkv→Fury 2014 ... H 265-HHWEB.mkv), typically done upstream by a library manager/renamer. upbrr faithfully uploads the renamed file and the tracker rejects/H&Rs it.Change
Detect renamed sources before upload and skip the affected trackers, reusing the existing rule-failure skip + per-tracker override machinery so it applies across all tracker families (UNIT3D and non-UNIT3D), not just LST.
isRenamedRelease(internal/trackers/modified_release.go): flags a grouped, non-personal, non-disc source whose on-disk name (source path or primary video file) contains whitespace and ends in a-GROUPtag.EvaluateRulesso every tracker family is covered (MANUALexempt viaskipsModifiedReleaseCheck).IgnoreTrackerRuleFailuresForpath. Surfaces in the upload review.False-positive / regression guards
Fury (2014) {imdb-tt2713180}) are not flagged, even when the parser mis-extracts an id token as the group.-GROUPsuffix.EvaluateRules'nilreturn contract so pre-existing failures (e.g.audio_bloaton MTV/BHD) are not silently cleared.Tests
MANUALexemption;nil-contract regression guard; end-to-endfilterTrackersByRuleFailuresskip + override.go test ./internal/trackers/... ./internal/metadata/...,make lint,make backendall clean.Out of scope
Detecting remux/altered files that keep a clean name (the
[Modified Release] Altered file ... mediainforejection) — needs parsing the MediaInfoComplete name/Writing library, which isn't structured today.