From 44fb80ad21935a4c60591569645bdc41c27c23ce Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Tue, 10 Mar 2026 21:10:59 -0400 Subject: [PATCH] [F] Fix only one torrent being detected when multiple exist --- workflow.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/workflow.py b/workflow.py index 0b338ae..12b7893 100644 --- a/workflow.py +++ b/workflow.py @@ -105,16 +105,17 @@ def check_local_filesystem(dl_dir: str, imdb_id: str): return item return None -def check_qbittorrent(qb, imdb_id: str): +def check_qbittorrent(qb, imdb_id: str) -> list[str]: """ Checks qBittorrent for any existing torrent that has the IMDb ID in its name. - Returns the torrent hash if found, or None. + Returns a list of torrent hashes found. """ existing_torrents = qb.torrents_info() + hashes = [] for t in existing_torrents: if f"[{imdb_id}]" in t.name: - return t.hash - return None + hashes.append(t.hash) + return hashes def search_and_download_mteam(qb, imdb_id: str, new_name: str, dl_dir: str) -> list: """ @@ -278,18 +279,19 @@ def process_imdb_workflow(imdb_id: str, dl_dir: str = DEFAULT_DL_DIR, jellyfin_b print(f"\n=== [0.2] Checking if torrent already exists in qBittorrent ===") qb = get_qb_client() - existing_t_hash = check_qbittorrent(qb, imdb_id) + existing_t_hashes = check_qbittorrent(qb, imdb_id) hashes_to_process = [] - if existing_t_hash: - print(f"Found existing torrent with hash {existing_t_hash}, skipping local check, search, and download.") - rename_torrent_and_folder(qb, existing_t_hash, new_name) - - print(f"\n=== [0.3] Waiting for existing download to finish ===") - wait_for_download(qb, existing_t_hash) - - hashes_to_process.append((existing_t_hash, "existing")) + if existing_t_hashes: + print(f"Found {len(existing_t_hashes)} existing torrent(s), skipping local check, search, and download.") + for existing_t_hash in existing_t_hashes: + rename_torrent_and_folder(qb, existing_t_hash, new_name) + + print(f"\n=== [0.3] Waiting for existing download to finish ===") + wait_for_download(qb, existing_t_hash) + + hashes_to_process.append((existing_t_hash, "existing")) else: print(f"\n=== [0.5] Checking if already exists in file system ===") fs_match_dir = check_local_filesystem(dl_dir, imdb_id)