fix(qbittorrent): pause uniquement pour les .torrent, pas pour les magnets
Les fichiers .torrent contiennent les métadonnées → pause/stopped OK, fichiers disponibles immédiatement. Les magnets récupèrent les métadonnées via les pairs → sans pause pour permettre la connexion.
This commit is contained in:
1 parent
2a77a38655
commit
9f90b6ab6c
1 file changed
+9
-2
@@ -277,11 +277,18 @@ const QB: TorrentClientDriver = {
|
||||
} catch {}
|
||||
}
|
||||
|
||||
// Ajout normal du torrent (pas en pause) pour que qBit récupère les métadonnées immédiatement
|
||||
// Stratégie d'ajout selon le type de lien :
|
||||
// .torrent URL → ajout en pause (métadonnées dans le fichier, disponibles immédiatement)
|
||||
// magnet link → ajout normal (métadonnées viennent des pairs, la pause bloque leur récupération)
|
||||
const isMagnet = url.startsWith('magnet:')
|
||||
const form = new FormData()
|
||||
form.append('urls', url)
|
||||
if (config.category) form.append('category', String(config.category))
|
||||
if (config.savePath) form.append('savepath', String(config.savePath))
|
||||
if (!isMagnet) {
|
||||
form.append('paused', 'true') // qBit < 5.0
|
||||
form.append('stopped', 'true') // qBit ≥ 5.0
|
||||
}
|
||||
|
||||
const res = await fetch(`${config.url}/api/v2/torrents/add`, {
|
||||
method: 'POST', body: form, headers: { Cookie: `SID=${sid}` },
|
||||
@@ -290,7 +297,7 @@ const QB: TorrentClientDriver = {
|
||||
if (text !== 'Ok.') throw new Error(`Ajout échoué : ${text}`)
|
||||
|
||||
if (hash) {
|
||||
logger.info('qbittorrent', `Torrent ajouté — sélection fichier ${options.file_index} en attente des métadonnées`)
|
||||
logger.info('qbittorrent', `Torrent ajouté (${isMagnet ? 'magnet, actif' : 'en pause'}) — sélection fichier ${options.file_index} en attente des métadonnées`)
|
||||
qbApplyFilePriority(config, hash, options.file_index, true).catch(err =>
|
||||
logger.warn('qbittorrent', `Priorité fichier non appliquée : ${err instanceof Error ? err.message : err}`)
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user