mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
1374e66f13
Enhanced the ranking algorithm to better distinguish complete title matches from partial matches, reducing series confusion. Updated the torrent search modal to allow users to customize the search title for new requests, improving search flexibility. Also refined request lookup to ignore deleted requests.
Phase 3: Automation Engine
Status: ⏳ In Development
Multi-stage pipeline transforming requests into downloaded, organized media in Plex.
Pipeline
Request → search_indexers → rank_results → download_torrent
→ monitor_download → process_audiobook → update_plex
Job Types
- search_indexers - Search Prowlarr for torrents
- rank_results - Apply ranking algorithm, select best
- download_torrent - Add to qBittorrent
- monitor_download - Poll progress (10s intervals)
- process_audiobook - Organize files to media directory
- update_plex - Trigger scan, fuzzy match
Integration Points
Indexers: Prowlarr (primary), Jackett (fallback) Download Clients: qBittorrent (primary), Transmission (fallback) Media Server: Plex (scan + match)
Job Queue (Bull)
- Redis-backed for persistence
- Retry: 3 attempts, exponential backoff (2s, 4s, 8s)
- Priorities: High (10), Medium (5), Low (1)
- Concurrency: 3 concurrent per type
- Jobs survive app restarts
Config Keys
Prowlarr: indexer.type=prowlarr, indexer.prowlarr_url, indexer.prowlarr_api_key
qBittorrent: download_client.type=qbittorrent, download_client.qbittorrent_url/username/password
Paths: paths.download_dir, paths.media_dir