feat: gestion des téléchargements qBittorrent avec import automatique
- Nouvelle table `torrent_downloads` pour suivre les téléchargements gérés - API : endpoint POST /torrent-downloads/notify (webhook optionnel) et GET /torrent-downloads - Poller background toutes les 30s qui interroge qBittorrent pour détecter les torrents terminés — aucune config "run external program" nécessaire - Import automatique : déplacement des fichiers vers la série cible, renommage selon le pattern existant (détection de la largeur des digits), support packs multi-volumes, scan job déclenché après import - Page /downloads dans le backoffice : filtres, auto-refresh, carte par download - Toggle auto-import intégré dans la card qBittorrent des settings - Erreurs de détection download affichées dans le détail des jobs - Volume /downloads monté dans docker-compose Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ const en: Record<TranslationKey, string> = {
|
||||
"nav.books": "Books",
|
||||
"nav.series": "Series",
|
||||
"nav.libraries": "Libraries",
|
||||
"nav.downloads": "Downloads",
|
||||
"nav.jobs": "Jobs",
|
||||
"nav.tokens": "Tokens",
|
||||
"nav.users": "Users",
|
||||
@@ -401,6 +402,8 @@ const en: Record<TranslationKey, string> = {
|
||||
"jobDetail.downloadAvailableReleases": "Available releases",
|
||||
"jobDetail.downloadAvailableReleasesDesc": "{{count}} series with at least one release found",
|
||||
"jobDetail.downloadMissingCount": "{{count}} missing",
|
||||
"jobDetail.downloadErrors": "Detection errors",
|
||||
"jobDetail.downloadErrorsDesc": "{{count}} series with errors during detection",
|
||||
|
||||
// Job types
|
||||
"jobType.rebuild": "Indexing",
|
||||
@@ -882,6 +885,25 @@ const en: Record<TranslationKey, string> = {
|
||||
"series.metadataAll": "All",
|
||||
"series.metadataLinked": "Linked",
|
||||
"series.metadataUnlinked": "Not linked",
|
||||
|
||||
// Downloads page
|
||||
"downloads.title": "Downloads",
|
||||
"downloads.refresh": "Refresh",
|
||||
"downloads.filterActive": "In progress",
|
||||
"downloads.empty": "No downloads",
|
||||
"downloads.volumes": "Volumes",
|
||||
"downloads.filesImported": "files imported",
|
||||
"downloads.status.downloading": "Downloading",
|
||||
"downloads.status.completed": "Completed",
|
||||
"downloads.status.importing": "Importing",
|
||||
"downloads.status.imported": "Imported",
|
||||
"downloads.status.error": "Error",
|
||||
|
||||
// Settings - Torrent Import
|
||||
"settings.torrentImport": "Auto import",
|
||||
"settings.torrentImportDesc": "When enabled, torrents added via the backoffice are tracked and files are automatically imported into the library when the download completes.",
|
||||
"settings.torrentImportEnabled": "Enable auto import",
|
||||
"settings.torrentImportPollingInfo": "The API polls qBittorrent every 30 seconds to detect completed downloads. No additional configuration in qBittorrent is required.",
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
||||
Reference in New Issue
Block a user