from typing import Any def label_episode_downloads(torrents: list[dict], queue: Any) -> list[dict]: """Join by collector download ID, never by fuzzy title matching. A pack shares one transfer percentage; do not pretend its episodes have individually measured progress. """ records = queue.get("records", []) if isinstance(queue, dict) else queue labels: dict[str, set[str]] = {} for row in records if isinstance(records, list) else []: episode = row.get("episode") or {} season, number = episode.get("seasonNumber"), episode.get("episodeNumber") if isinstance(season, int) and isinstance(number, int): key = str(row.get("downloadId") or "").lower() labels.setdefault(key, set()).add(f"S{season:02d}E{number:02d}") for torrent in torrents: episodes = sorted(labels.get(str(torrent.get("hash") or "").lower(), set())) torrent["episodeLabels"] = episodes torrent["episodeLabel"] = ( " · ".join(episodes) + (" — shared download progress" if len(episodes) > 1 else "") if episodes else None ) return torrents