Move dead torrent detection logic from 50 MrtveTorrenty.py into 70 Manager.py as step 1b, so the manager handles completed, dead, and new torrents in a single run cycle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
qBittorrent returns completion_on = -1 for torrents that were never
completed. datetime.fromtimestamp(-1) throws OSError on Windows.
Added explicit check for negative values and try/except for safety.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add CLIENTS list: UltraCC Seedbox (max 20) + Local qBittorrent (max 20)
- Add 'added' to SELECT_NEXT exclusion list to prevent two clients
claiming the same torrent from the shared DB queue
- Add qb_client column tracking — each torrent records which client
downloaded it; per-client stats shown at startup
- Extract process_client() to encapsulate steps 1-3 per client
- Remove continuous loop and sleep — script runs once and exits,
designed to be triggered by a scheduled task
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>