Add SABnzbd Usenet/NZB integration and documentation

Introduces SABnzbd as a supported download client for Usenet/NZB alongside qBittorrent, including service implementation, setup wizard and admin settings UI updates, and protocol-specific job processor logic. Updates documentation, PRD, and database schema to support NZB downloads, adds comprehensive technical details and testing strategies, and fixes Audible integration issues related to search and ASIN extraction.
This commit is contained in:
kikootwo
2026-01-07 02:40:11 -05:00
parent 23881eb670
commit e008744df1
21 changed files with 2378 additions and 254 deletions
+4 -1
View File
@@ -238,6 +238,7 @@ model DownloadHistory {
indexerName String @map("indexer_name")
torrentName String? @map("torrent_name")
torrentHash String? @map("torrent_hash")
nzbId String? @map("nzb_id") // SABnzbd NZB ID (mutually exclusive with torrentHash)
torrentSizeBytes BigInt? @map("torrent_size_bytes")
magnetLink String? @map("magnet_link") @db.Text
torrentUrl String? @map("torrent_url") @db.Text
@@ -245,7 +246,7 @@ model DownloadHistory {
leechers Int?
qualityScore Int? @map("quality_score")
selected Boolean @default(false)
downloadClient String? @map("download_client") // qbittorrent, transmission
downloadClient String? @map("download_client") // qbittorrent, sabnzbd
downloadClientId String? @map("download_client_id")
downloadStatus String? @map("download_status")
// Status values: queued, downloading, completed, failed, stalled
@@ -259,6 +260,8 @@ model DownloadHistory {
@@index([requestId])
@@index([selected])
@@index([torrentHash])
@@index([nzbId])
@@index([createdAt(sort: Desc)])
@@map("download_history")
}