Skip to content

feat: merge upstream v7.1.7 (Audionut/Upload-Assistant)#192

Merged
yippee0903 merged 8 commits into
masterfrom
merge/upstream-v7.1.7
May 11, 2026
Merged

feat: merge upstream v7.1.7 (Audionut/Upload-Assistant)#192
yippee0903 merged 8 commits into
masterfrom
merge/upstream-v7.1.7

Conversation

@yippee0903
Copy link
Copy Markdown
Owner

@yippee0903 yippee0903 commented May 11, 2026

Merge des commits upstream v7.1.7 dans master.

Commits intégrés depuis origin_origin/master :

Résolution des conflits :

Summary by CodeRabbit

  • Chores

    • Released version v7.1.7
  • Bug Fixes

    • Fixed screenshot overlay frame lookup during capture
    • Normalized descriptions across varied input types
    • Improved tracker handling when additional checks fail (GPW)
  • Refactor

    • Streamlined torrent detection and processing workflow for BJS tracker
    • Added optional mod-queue opt-in handling for SP tracker

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1b86e706-d32c-4d03-8e26-f521cb9a753e

📥 Commits

Reviewing files that changed from the base of the PR and between 7a6bfbf and 2c737cb.

📒 Files selected for processing (1)
  • src/trackers/BJS.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/trackers/BJS.py

📝 Walkthrough

Walkthrough

Version v7.1.7 release: bump version and release notes; normalize description metadata types; fix screenshot frame-info key lookups; refactor BJS torrent processing to fetch/parse torrent pages and extract item names; GPW now records skip reason; SP adds upload additional-data helper.

Changes

v7.1.7 Release Changes

Layer / File(s) Summary
Version Bump & Release Notes
data/version.py
Version constant bumped to v7.1.7 with dated release notes for 2026-05-11.
Description Type Normalization
src/get_desc.py
Description metadata normalized by type: strings kept as-is, None converted to empty string, other values stringified before use.
Screenshot Frame Info Lookup Fix
src/takescreens.py
Frame info map lookups in capture_disc_task, capture_dvd_screenshot, and capture_screenshot now use stringified timestamp keys, aligning with frame info population that uses timestamp strings.
BJS Torrent Eligibility Logic
src/trackers/BJS.py
New _should_process_torrent helper determines torrent processing eligibility from extracted season/resolution/episode/pack state and upload parameters, returning a single boolean.
BJS Torrent Task Building & Page Fetching
src/trackers/BJS.py
_extract_torrent_ids now builds simplified task dicts with only torrent_id, description, size, and link. New _fetch_torrent_page fetches torrent page HTML via /torrents.php?torrentid=... instead of AJAX endpoint, with retry/backoff logic.
BJS Item Name Extraction & Result Processing
src/trackers/BJS.py
New _extract_item_name derives first file/folder name from torrent page DOM using files_{torrent_id} element. Updated _process_ajax_responses gathers async fetch tasks and builds results using DOM-parsed item names with fallback to description/title.
BJS Search Flow Refactoring
src/trackers/BJS.py
Table iteration in search_existing now parses pack status and episode presence from td[rowspan] content, filters rows via _should_process_torrent, and passes results to task extraction and async processing.
BJS Request Field Extraction
src/trackers/BJS.py
Minor change in get_requests to use .text.strip() directly for Name and Quality field values.
Tracker Skip Logging & Upload Data
src/trackers/GPW.py, src/trackers/SP.py
GPW sets meta["skipping"] on additional-check failure. SP adds get_additional_data method returning upload payload with mod_queue_opt_in from the "modq" flag.

Sequence Diagram(s)

sequenceDiagram
  participant search_existing
  participant _fetch_torrent_page
  participant _extract_item_name
  search_existing->>_fetch_torrent_page: request /torrents.php?torrentid=... (task_info)
  _fetch_torrent_page-->>search_existing: return {success, soup | error, task_info}
  search_existing->>_extract_item_name: provide soup, torrent_id
  _extract_item_name-->>search_existing: return item_name (file/folder label) or ''
  search_existing->>search_existing: build result (use item_name or fallback description/title)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies this as an upstream merge for version v7.1.7, which aligns with the version bump in data/version.py and the multiple bugfixes and features described in the PR objectives.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch merge/upstream-v7.1.7

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
data/version.py (1)

2772-2772: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Active version assignment not updated to v7.1.7.

Line 2772 still assigns __version__ = "v7.1.6", but this is the active version that will be used at runtime (as noted in the comment above). Since you've added v7.1.7 release notes at the top and this PR merges upstream v7.1.7, this line must also be updated to match.

🐛 Proposed fix
-__version__ = "v7.1.6"
+__version__ = "v7.1.7"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@data/version.py` at line 2772, The runtime version variable __version__ is
still set to "v7.1.6" but should be updated to match the new release; change the
assignment of __version__ in data/version.py (the __version__ variable near the
end of the file) to "v7.1.7" so the active runtime version matches the added
v7.1.7 release notes.
🧹 Nitpick comments (1)
src/trackers/BJS.py (1)

597-616: ⚡ Quick win

Use the search-row title as a fallback before dropping the candidate.

_extract_torrent_ids() still carries description_text, but this path only keeps a result when _extract_item_name() succeeds. If files_{torrent_id} is absent or the file-list markup differs for some torrents, those dupes disappear entirely even though the search row already provided a usable name.

Suggested fix
-            item_name = self._extract_item_name(soup_obj, torrent_id)
+            item_name = self._extract_item_name(soup_obj, torrent_id) or str(task_info.get("description_text") or "")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/trackers/BJS.py` around lines 597 - 616, The code currently only appends
a candidate when _extract_item_name(soup_obj, torrent_id) returns a truthy name,
causing items to be dropped when file-list markup differs; update the logic in
the block that computes item_name (around _extract_item_name and found_items) to
treat the search-row title/description_text from task_info as a fallback: if
item_name is falsy, set item_name = task_info.get("description_text") or
task_info.get("title") (or another search-row field present in task_info) before
deciding to append, and still include size, link and torrent_description when
adding to found_items; ensure you reference _extract_item_name and the
found_items append path so the fallback is applied only there.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/trackers/BJS.py`:
- Around line 470-486: The TV branch in _should_process_torrent currently
ignores current_resolution and params["upload_resolution"], causing
different-resolution dupes to be treated as matches; update
_should_process_torrent to also require resolution equality (compare
current_resolution against params["upload_resolution"]) before returning True
for season or episode matches. Specifically, inside the TV block in
_should_process_torrent: after confirming season matches (int(current_season) ==
int(params["upload_season_num"])), add a check that either
params["upload_resolution"] is empty/None or equals current_resolution; then
apply the existing is_pack/episode logic (params["is_tv_pack"] -> is_pack, else
allow pack OR episode match only if resolution check passed). Ensure the
resolution comparison is done before any True return paths so 1080p uploads
won't match 720p/2160p rows.

---

Outside diff comments:
In `@data/version.py`:
- Line 2772: The runtime version variable __version__ is still set to "v7.1.6"
but should be updated to match the new release; change the assignment of
__version__ in data/version.py (the __version__ variable near the end of the
file) to "v7.1.7" so the active runtime version matches the added v7.1.7 release
notes.

---

Nitpick comments:
In `@src/trackers/BJS.py`:
- Around line 597-616: The code currently only appends a candidate when
_extract_item_name(soup_obj, torrent_id) returns a truthy name, causing items to
be dropped when file-list markup differs; update the logic in the block that
computes item_name (around _extract_item_name and found_items) to treat the
search-row title/description_text from task_info as a fallback: if item_name is
falsy, set item_name = task_info.get("description_text") or
task_info.get("title") (or another search-row field present in task_info) before
deciding to append, and still include size, link and torrent_description when
adding to found_items; ensure you reference _extract_item_name and the
found_items append path so the fallback is applied only there.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c8431257-612d-4091-8ad5-64bbf564df8e

📥 Commits

Reviewing files that changed from the base of the PR and between daebc5e and 7a6bfbf.

📒 Files selected for processing (6)
  • data/version.py
  • src/get_desc.py
  • src/takescreens.py
  • src/trackers/BJS.py
  • src/trackers/GPW.py
  • src/trackers/SP.py

Comment thread src/trackers/BJS.py
@yippee0903
Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@yippee0903 yippee0903 merged commit 2254a13 into master May 11, 2026
6 checks passed
@yippee0903 yippee0903 deleted the merge/upstream-v7.1.7 branch May 11, 2026 21:12
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.

6 participants