cross-seed 6.11.2 → 6.12.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action.js +339 -222
- package/dist/action.js.map +1 -1
- package/dist/clients/Deluge.js +100 -55
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +147 -50
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +86 -56
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +60 -28
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +67 -33
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +10 -13
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +17 -29
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +104 -30
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +14 -11
- package/dist/dataFiles.js.map +1 -1
- package/dist/db.js +10 -7
- package/dist/db.js.map +1 -1
- package/dist/decide.js +13 -16
- package/dist/decide.js.map +1 -1
- package/dist/diff.js +5 -26
- package/dist/diff.js.map +1 -1
- package/dist/inject.js +99 -98
- package/dist/inject.js.map +1 -1
- package/dist/logger.js +26 -15
- package/dist/logger.js.map +1 -1
- package/dist/pipeline.js +127 -75
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +2 -35
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +3 -0
- package/dist/pushNotifier.js.map +1 -1
- package/dist/runtimeConfig.js.map +1 -1
- package/dist/searchee.js +136 -91
- package/dist/searchee.js.map +1 -1
- package/dist/startup.js +3 -2
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +132 -98
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +5 -5
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +26 -6
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
@@ -9,7 +9,7 @@ import { resultOf, resultOfErr } from "../Result.js";
|
|
9
9
|
import { getRuntimeConfig } from "../runtimeConfig.js";
|
10
10
|
import { createSearcheeFromDB, parseTitle, updateSearcheeClientDB, } from "../searchee.js";
|
11
11
|
import { getMaxRemainingBytes, getResumeStopTime, organizeTrackers, resumeErrSleepTime, resumeSleepTime, shouldRecheck, } from "./TorrentClient.js";
|
12
|
-
import { extractCredentialsFromUrl, extractInt, getLogString, humanReadableSize, sanitizeInfoHash, wait, } from "../utils.js";
|
12
|
+
import { extractCredentialsFromUrl, extractInt, getPathParts, getLogString, humanReadableSize, sanitizeInfoHash, wait, } from "../utils.js";
|
13
13
|
const X_WWW_FORM_URLENCODED = {
|
14
14
|
"Content-Type": "application/x-www-form-urlencoded",
|
15
15
|
};
|
@@ -18,10 +18,19 @@ export default class QBittorrent {
|
|
18
18
|
url;
|
19
19
|
version;
|
20
20
|
versionMajor;
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
versionMinor;
|
22
|
+
versionPatch;
|
23
|
+
clientHost;
|
24
|
+
clientPriority;
|
25
|
+
clientType = Label.QBITTORRENT;
|
26
|
+
readonly;
|
27
|
+
label;
|
28
|
+
constructor(url, priority, readonly) {
|
29
|
+
this.clientHost = new URL(url).host;
|
30
|
+
this.clientPriority = priority;
|
31
|
+
this.readonly = readonly;
|
32
|
+
this.label = `${this.clientType}@${this.clientHost}`;
|
33
|
+
this.url = extractCredentialsFromUrl(url, "/api/v2").unwrapOrThrow(new CrossSeedError(`[${this.label}] qBittorrent url must be percent-encoded`));
|
25
34
|
}
|
26
35
|
async login() {
|
27
36
|
let response;
|
@@ -49,23 +58,38 @@ export default class QBittorrent {
|
|
49
58
|
}
|
50
59
|
this.version = version;
|
51
60
|
this.versionMajor = extractInt(this.version);
|
61
|
+
this.versionMinor = extractInt(this.version.split(".")[1]);
|
62
|
+
this.versionPatch = extractInt(this.version.split(".")[2]);
|
63
|
+
if (this.versionMajor < 4 ||
|
64
|
+
(this.versionMajor === 4 && this.versionMinor < 3) ||
|
65
|
+
(this.versionMajor === 4 &&
|
66
|
+
this.versionMinor === 3 &&
|
67
|
+
this.versionPatch < 1)) {
|
68
|
+
throw new CrossSeedError(`qBittorrent minimum supported version is v4.3.1, current version is ${this.version}`);
|
69
|
+
}
|
52
70
|
logger.info({
|
53
|
-
label:
|
54
|
-
message: `Logged in to
|
71
|
+
label: this.label,
|
72
|
+
message: `Logged in to ${this.version} successfully${this.readonly ? " (readonly)" : ""}`,
|
55
73
|
});
|
56
74
|
}
|
57
75
|
async validateConfig() {
|
58
76
|
const { torrentDir } = getRuntimeConfig();
|
59
|
-
|
77
|
+
try {
|
78
|
+
await this.login();
|
79
|
+
}
|
80
|
+
catch (e) {
|
81
|
+
e.message = `[${this.label}] ${e.message}`;
|
82
|
+
throw e;
|
83
|
+
}
|
60
84
|
await this.createTag();
|
61
85
|
if (!torrentDir)
|
62
86
|
return;
|
63
87
|
const { resume_data_storage_type } = await this.getPreferences();
|
64
88
|
if (resume_data_storage_type === "SQLite") {
|
65
|
-
throw new CrossSeedError(
|
89
|
+
throw new CrossSeedError(`[${this.label}] torrentDir is not compatible with SQLite mode in qBittorrent, use https://www.cross-seed.org/docs/basics/options#useclienttorrents`);
|
66
90
|
}
|
67
91
|
if (!readdirSync(torrentDir).some((f) => f.endsWith(".fastresume"))) {
|
68
|
-
throw new CrossSeedError(
|
92
|
+
throw new CrossSeedError(`[${this.label}] Invalid torrentDir, if no torrents are in client set to null for now: https://www.cross-seed.org/docs/basics/options#torrentdir`);
|
69
93
|
}
|
70
94
|
}
|
71
95
|
async request(path, body, headers = {}, retries = 3) {
|
@@ -73,7 +97,7 @@ export default class QBittorrent {
|
|
73
97
|
? JSON.stringify(Object.fromEntries(body))
|
74
98
|
: JSON.stringify(body).replace(/(?:hashes=)([a-z0-9]{40})/i, (match, hash) => match.replace(hash, sanitizeInfoHash(hash)));
|
75
99
|
logger.verbose({
|
76
|
-
label:
|
100
|
+
label: this.label,
|
77
101
|
message: `Making request (${retries}) to ${path} with body ${bodyStr}`,
|
78
102
|
});
|
79
103
|
let response;
|
@@ -85,7 +109,7 @@ export default class QBittorrent {
|
|
85
109
|
});
|
86
110
|
if (response.status === 403 && retries > 0) {
|
87
111
|
logger.verbose({
|
88
|
-
label:
|
112
|
+
label: this.label,
|
89
113
|
message: "Received 403 from API. Logging in again and retrying",
|
90
114
|
});
|
91
115
|
await this.login();
|
@@ -95,13 +119,13 @@ export default class QBittorrent {
|
|
95
119
|
catch (e) {
|
96
120
|
if (retries > 0) {
|
97
121
|
logger.verbose({
|
98
|
-
label:
|
122
|
+
label: this.label,
|
99
123
|
message: `Request failed, ${retries} retries remaining: ${e.message}`,
|
100
124
|
});
|
101
125
|
return this.request(path, body, headers, retries - 1);
|
102
126
|
}
|
103
127
|
logger.verbose({
|
104
|
-
label:
|
128
|
+
label: this.label,
|
105
129
|
message: `Request failed after ${retries} retries: ${e.message}`,
|
106
130
|
});
|
107
131
|
}
|
@@ -110,12 +134,20 @@ export default class QBittorrent {
|
|
110
134
|
async getPreferences() {
|
111
135
|
const responseText = await this.request("/app/preferences", "", X_WWW_FORM_URLENCODED);
|
112
136
|
if (!responseText) {
|
113
|
-
throw new CrossSeedError(`qBittorrent failed to retrieve preferences`);
|
137
|
+
throw new CrossSeedError(`[${this.label}] qBittorrent failed to retrieve preferences`);
|
114
138
|
}
|
115
139
|
return JSON.parse(responseText);
|
116
140
|
}
|
117
|
-
|
118
|
-
|
141
|
+
/**
|
142
|
+
* Always returns "Original" for API searchees due to isSubfolderContentLayout.
|
143
|
+
* This is not an issue since it's either a MATCH or we are linking.
|
144
|
+
* @param searchee the Searchee the match was sourced from
|
145
|
+
* @param searcheeInfo the torrent info from the searchee
|
146
|
+
* @param destinationDir the destinationDir for the new torrent
|
147
|
+
* @returns the layout to use for the new torrent
|
148
|
+
*/
|
149
|
+
getLayoutForNewTorrent(searchee, searcheeInfo, destinationDir) {
|
150
|
+
return destinationDir
|
119
151
|
? "Original"
|
120
152
|
: this.isSubfolderContentLayout(searchee, searcheeInfo)
|
121
153
|
? "Subfolder"
|
@@ -145,10 +177,10 @@ export default class QBittorrent {
|
|
145
177
|
}
|
146
178
|
return dupeCategory;
|
147
179
|
}
|
148
|
-
getTagsForNewTorrent(searcheeInfo,
|
180
|
+
getTagsForNewTorrent(searcheeInfo, destinationDir) {
|
149
181
|
const { duplicateCategories, linkCategory } = getRuntimeConfig();
|
150
|
-
if (!duplicateCategories || !searcheeInfo || !
|
151
|
-
return TORRENT_TAG; // Require
|
182
|
+
if (!duplicateCategories || !searcheeInfo || !destinationDir) {
|
183
|
+
return TORRENT_TAG; // Require destinationDir to duplicate category using tags
|
152
184
|
}
|
153
185
|
const searcheeCategory = searcheeInfo.category;
|
154
186
|
if (!searcheeCategory.length || searcheeCategory === linkCategory) {
|
@@ -184,7 +216,7 @@ export default class QBittorrent {
|
|
184
216
|
}));
|
185
217
|
}
|
186
218
|
catch (e) {
|
187
|
-
logger.debug(e);
|
219
|
+
logger.debug({ label: this.label, message: e });
|
188
220
|
return null;
|
189
221
|
}
|
190
222
|
}
|
@@ -196,7 +228,7 @@ export default class QBittorrent {
|
|
196
228
|
return organizeTrackers(JSON.parse(responseText));
|
197
229
|
}
|
198
230
|
catch (e) {
|
199
|
-
logger.debug(e);
|
231
|
+
logger.debug({ label: this.label, message: e });
|
200
232
|
return null;
|
201
233
|
}
|
202
234
|
}
|
@@ -213,11 +245,20 @@ export default class QBittorrent {
|
|
213
245
|
* @return either a string containing the path or a error mesage
|
214
246
|
*/
|
215
247
|
async getDownloadDir(meta, options) {
|
248
|
+
const { torrentDir } = getRuntimeConfig();
|
216
249
|
try {
|
217
250
|
const torrentInfo = await this.getTorrentInfo(meta.infoHash);
|
218
251
|
if (!torrentInfo) {
|
219
252
|
return resultOfErr("NOT_FOUND");
|
220
253
|
}
|
254
|
+
if (torrentDir &&
|
255
|
+
this.isNoSubfolderContentLayout(meta, torrentInfo)) {
|
256
|
+
logger.error({
|
257
|
+
label: this.label,
|
258
|
+
message: `NoSubfolder content layout is not supported with torrentDir, use https://www.cross-seed.org/docs/basics/options#useclienttorrents: ${torrentInfo.name} [${sanitizeInfoHash(torrentInfo.hash)}]`,
|
259
|
+
});
|
260
|
+
return resultOfErr("INVALID_DATA");
|
261
|
+
}
|
221
262
|
if (options.onlyCompleted &&
|
222
263
|
!this.isTorrentInfoComplete(torrentInfo)) {
|
223
264
|
return resultOfErr("TORRENT_NOT_COMPLETE");
|
@@ -225,7 +266,7 @@ export default class QBittorrent {
|
|
225
266
|
return resultOf(this.getCorrectSavePath(meta, torrentInfo));
|
226
267
|
}
|
227
268
|
catch (e) {
|
228
|
-
logger.debug(e);
|
269
|
+
logger.debug({ label: this.label, message: e });
|
229
270
|
if (e.message.includes("retrieve")) {
|
230
271
|
return resultOfErr("NOT_FOUND");
|
231
272
|
}
|
@@ -237,6 +278,7 @@ export default class QBittorrent {
|
|
237
278
|
* @return a map of infohash to path
|
238
279
|
*/
|
239
280
|
async getAllDownloadDirs(options) {
|
281
|
+
const { torrentDir } = getRuntimeConfig();
|
240
282
|
const torrents = await this.getAllTorrentInfo();
|
241
283
|
const torrentSavePaths = new Map();
|
242
284
|
const infoHashMetaMap = options.metas.reduce((acc, meta) => {
|
@@ -244,15 +286,20 @@ export default class QBittorrent {
|
|
244
286
|
return acc;
|
245
287
|
}, new Map());
|
246
288
|
for (const torrent of torrents) {
|
247
|
-
if (options.onlyCompleted && !this.isTorrentInfoComplete(torrent)) {
|
248
|
-
continue;
|
249
|
-
}
|
250
289
|
const meta = infoHashMetaMap.get(torrent.hash) ||
|
251
290
|
(torrent.infohash_v2 &&
|
252
291
|
infoHashMetaMap.get(torrent.infohash_v2)) ||
|
253
292
|
(torrent.infohash_v1 &&
|
254
293
|
infoHashMetaMap.get(torrent.infohash_v1)) ||
|
255
294
|
undefined;
|
295
|
+
if (torrentDir &&
|
296
|
+
meta &&
|
297
|
+
this.isNoSubfolderContentLayout(meta, torrent)) {
|
298
|
+
throw new CrossSeedError(`[${this.label}] NoSubfolder content layout is not supported with torrentDir, use https://www.cross-seed.org/docs/basics/options#useclienttorrents: ${torrent.name} [${sanitizeInfoHash(torrent.hash)}]`);
|
299
|
+
}
|
300
|
+
if (options.onlyCompleted && !this.isTorrentInfoComplete(torrent)) {
|
301
|
+
continue;
|
302
|
+
}
|
256
303
|
const savePath = meta
|
257
304
|
? this.getCorrectSavePath(meta, torrent)
|
258
305
|
: torrent.save_path;
|
@@ -346,7 +393,7 @@ export default class QBittorrent {
|
|
346
393
|
const torrents = await this.getAllTorrentInfo();
|
347
394
|
if (!torrents.length) {
|
348
395
|
logger.error({
|
349
|
-
label:
|
396
|
+
label: this.label,
|
350
397
|
message: "No torrents found in client",
|
351
398
|
});
|
352
399
|
return { searchees, newSearchees };
|
@@ -356,6 +403,7 @@ export default class QBittorrent {
|
|
356
403
|
infoHashes.add(infoHash);
|
357
404
|
const dbTorrent = await memDB("torrent")
|
358
405
|
.where("info_hash", infoHash)
|
406
|
+
.where("client_host", this.clientHost)
|
359
407
|
.first();
|
360
408
|
const refresh = options?.refresh === undefined
|
361
409
|
? false
|
@@ -371,14 +419,14 @@ export default class QBittorrent {
|
|
371
419
|
const files = await this.getFiles(torrent.hash);
|
372
420
|
if (!files) {
|
373
421
|
logger.verbose({
|
374
|
-
label:
|
422
|
+
label: this.label,
|
375
423
|
message: `Failed to get files for ${torrent.name} [${sanitizeInfoHash(torrent.hash)}] (likely transient)`,
|
376
424
|
});
|
377
425
|
continue;
|
378
426
|
}
|
379
427
|
if (!files.length) {
|
380
428
|
logger.verbose({
|
381
|
-
label:
|
429
|
+
label: this.label,
|
382
430
|
message: `No files found for ${torrent.name} [${sanitizeInfoHash(torrent.hash)}]: skipping`,
|
383
431
|
});
|
384
432
|
continue;
|
@@ -386,7 +434,7 @@ export default class QBittorrent {
|
|
386
434
|
const trackers = await this.getTrackers(torrent.hash);
|
387
435
|
if (!trackers) {
|
388
436
|
logger.verbose({
|
389
|
-
label:
|
437
|
+
label: this.label,
|
390
438
|
message: `Failed to get trackers for ${torrent.name} [${sanitizeInfoHash(torrent.hash)}] (likely transient)`,
|
391
439
|
});
|
392
440
|
continue;
|
@@ -396,13 +444,14 @@ export default class QBittorrent {
|
|
396
444
|
const length = torrent.total_size;
|
397
445
|
const savePath = torrent.save_path;
|
398
446
|
const category = torrent.category;
|
399
|
-
const tags = torrent.tags.length ? torrent.tags.split(",") : [];
|
447
|
+
const tags = torrent.tags.length ? torrent.tags.split(", ") : [];
|
400
448
|
const searchee = {
|
401
449
|
infoHash,
|
402
450
|
name,
|
403
451
|
title,
|
404
452
|
files,
|
405
453
|
length,
|
454
|
+
clientHost: this.clientHost,
|
406
455
|
savePath,
|
407
456
|
category,
|
408
457
|
tags,
|
@@ -411,7 +460,7 @@ export default class QBittorrent {
|
|
411
460
|
newSearchees.push(searchee);
|
412
461
|
searchees.push(searchee);
|
413
462
|
}
|
414
|
-
await updateSearcheeClientDB(newSearchees, infoHashes);
|
463
|
+
await updateSearcheeClientDB(this.clientHost, newSearchees, infoHashes);
|
415
464
|
return { searchees, newSearchees };
|
416
465
|
}
|
417
466
|
/**
|
@@ -420,11 +469,20 @@ export default class QBittorrent {
|
|
420
469
|
*/
|
421
470
|
async isTorrentComplete(infoHash) {
|
422
471
|
const torrentInfo = await this.getTorrentInfo(infoHash);
|
423
|
-
if (!torrentInfo)
|
472
|
+
if (!torrentInfo)
|
424
473
|
return resultOfErr("NOT_FOUND");
|
425
|
-
}
|
426
474
|
return resultOf(this.isTorrentInfoComplete(torrentInfo));
|
427
475
|
}
|
476
|
+
/**
|
477
|
+
* @param infoHash the infohash of the torrent
|
478
|
+
* @returns whether the torrent is checking
|
479
|
+
*/
|
480
|
+
async isTorrentChecking(infoHash) {
|
481
|
+
const torrentInfo = await this.getTorrentInfo(infoHash);
|
482
|
+
if (!torrentInfo)
|
483
|
+
return resultOfErr("NOT_FOUND");
|
484
|
+
return resultOf(["checkingDL", "checkingUP"].includes(torrentInfo.state));
|
485
|
+
}
|
428
486
|
isTorrentInfoComplete(torrentInfo) {
|
429
487
|
return [
|
430
488
|
"uploading",
|
@@ -436,10 +494,19 @@ export default class QBittorrent {
|
|
436
494
|
"forcedUP",
|
437
495
|
].includes(torrentInfo.state);
|
438
496
|
}
|
497
|
+
/**
|
498
|
+
* This can only return true if the searchee is from a torrent file, not API.
|
499
|
+
* Since we get the file structure from the API, it's already accounted for.
|
500
|
+
* This does NOT check if the torrent was added with "Don't Create Subfolder".
|
501
|
+
* @param data the Searchee or Metafile
|
502
|
+
* @param dataInfo the TorrentInfo
|
503
|
+
* @returns whether the torrent was added with "Create Subfolder"
|
504
|
+
*/
|
439
505
|
isSubfolderContentLayout(data, dataInfo) {
|
440
|
-
|
506
|
+
const { useClientTorrents } = getRuntimeConfig();
|
507
|
+
if (useClientTorrents)
|
441
508
|
return false;
|
442
|
-
if (
|
509
|
+
if (data.files.length > 1)
|
443
510
|
return false;
|
444
511
|
let dirname = path.posix.dirname;
|
445
512
|
let resolve = path.posix.resolve;
|
@@ -447,9 +514,38 @@ export default class QBittorrent {
|
|
447
514
|
dirname = path.win32.dirname;
|
448
515
|
resolve = path.win32.resolve;
|
449
516
|
}
|
517
|
+
if (dirname(data.files[0].path) !== ".")
|
518
|
+
return false;
|
450
519
|
return (resolve(dirname(dataInfo.content_path)) !==
|
451
520
|
resolve(dataInfo.save_path));
|
452
521
|
}
|
522
|
+
/**
|
523
|
+
* This can only return true if the searchee is from a torrent file, not API.
|
524
|
+
* Since we get the file structure from the API, it's already accounted for.
|
525
|
+
* This does NOT check if the torrent was added with "Create Subfolder".
|
526
|
+
* @param data the Searchee or Metafile
|
527
|
+
* @param dataInfo the TorrentInfo
|
528
|
+
* @returns whether the torrent was added with "Don't Create Subfolder"
|
529
|
+
*/
|
530
|
+
isNoSubfolderContentLayout(data, dataInfo) {
|
531
|
+
const { useClientTorrents } = getRuntimeConfig();
|
532
|
+
if (useClientTorrents)
|
533
|
+
return false;
|
534
|
+
if (data.files.length > 1) {
|
535
|
+
return dataInfo.content_path === dataInfo.save_path;
|
536
|
+
}
|
537
|
+
let dirname = path.posix.dirname;
|
538
|
+
let relative = path.posix.relative;
|
539
|
+
if (ABS_WIN_PATH_REGEX.test(dataInfo.content_path)) {
|
540
|
+
dirname = path.win32.dirname;
|
541
|
+
relative = path.win32.relative;
|
542
|
+
}
|
543
|
+
if (dirname(data.files[0].path) === ".")
|
544
|
+
return false;
|
545
|
+
const clientPath = relative(dataInfo.save_path, dataInfo.content_path);
|
546
|
+
return (getPathParts(clientPath, dirname).length <
|
547
|
+
getPathParts(data.files[0].path, dirname).length);
|
548
|
+
}
|
453
549
|
async resumeInjection(infoHash, decision, options) {
|
454
550
|
let sleepTime = resumeSleepTime;
|
455
551
|
const maxRemainingBytes = getMaxRemainingBytes(decision);
|
@@ -473,31 +569,31 @@ export default class QBittorrent {
|
|
473
569
|
const torrentLog = `${torrentInfo.name} [${sanitizeInfoHash(infoHash)}]`;
|
474
570
|
if (!["pausedDL", "stoppedDL", "pausedUP", "stoppedUP"].includes(torrentInfo.state)) {
|
475
571
|
logger.warn({
|
476
|
-
label:
|
572
|
+
label: this.label,
|
477
573
|
message: `Will not resume ${torrentLog}: state is ${torrentInfo.state}`,
|
478
574
|
});
|
479
575
|
return;
|
480
576
|
}
|
481
577
|
if (torrentInfo.amount_left > maxRemainingBytes) {
|
482
578
|
logger.warn({
|
483
|
-
label:
|
579
|
+
label: this.label,
|
484
580
|
message: `Will not resume ${torrentLog}: ${humanReadableSize(torrentInfo.amount_left, { binary: true })} remaining > ${humanReadableSize(maxRemainingBytes, { binary: true })}`,
|
485
581
|
});
|
486
582
|
return;
|
487
583
|
}
|
488
584
|
logger.info({
|
489
|
-
label:
|
585
|
+
label: this.label,
|
490
586
|
message: `Resuming ${torrentLog}: ${humanReadableSize(torrentInfo.amount_left, { binary: true })} remaining`,
|
491
587
|
});
|
492
588
|
await this.request(`/torrents/${this.versionMajor >= 5 ? "start" : "resume"}`, `hashes=${infoHash}`, X_WWW_FORM_URLENCODED);
|
493
589
|
return;
|
494
590
|
}
|
495
591
|
logger.warn({
|
496
|
-
label:
|
592
|
+
label: this.label,
|
497
593
|
message: `Will not resume torrent ${infoHash}: timeout`,
|
498
594
|
});
|
499
595
|
}
|
500
|
-
async inject(newTorrent, searchee, decision,
|
596
|
+
async inject(newTorrent, searchee, decision, options) {
|
501
597
|
const { linkCategory } = getRuntimeConfig();
|
502
598
|
try {
|
503
599
|
if (await this.getTorrentInfo(newTorrent.infoHash)) {
|
@@ -505,20 +601,20 @@ export default class QBittorrent {
|
|
505
601
|
}
|
506
602
|
const searcheeInfo = await this.getTorrentInfo(searchee.infoHash);
|
507
603
|
if (!searcheeInfo) {
|
508
|
-
if (!
|
604
|
+
if (!options.destinationDir) {
|
509
605
|
// This is never possible, being made explicit here
|
510
606
|
throw new Error(`Searchee torrent may have been deleted: ${getLogString(searchee)}`);
|
511
607
|
}
|
512
608
|
else if (searchee.infoHash) {
|
513
609
|
logger.warn({
|
514
|
-
label:
|
610
|
+
label: this.label,
|
515
611
|
message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${getLogString(searchee)}`,
|
516
612
|
});
|
517
613
|
}
|
518
614
|
}
|
519
|
-
const { savePath, isComplete, autoTMM, category } =
|
615
|
+
const { savePath, isComplete, autoTMM, category } = options.destinationDir
|
520
616
|
? {
|
521
|
-
savePath:
|
617
|
+
savePath: options.destinationDir,
|
522
618
|
isComplete: true,
|
523
619
|
autoTMM: false,
|
524
620
|
category: linkCategory,
|
@@ -529,8 +625,9 @@ export default class QBittorrent {
|
|
529
625
|
autoTMM: searcheeInfo.auto_tmm,
|
530
626
|
category: searcheeInfo.category,
|
531
627
|
};
|
532
|
-
if (!isComplete)
|
628
|
+
if (options.onlyCompleted && !isComplete) {
|
533
629
|
return InjectionResult.TORRENT_NOT_COMPLETE;
|
630
|
+
}
|
534
631
|
const filename = `${newTorrent.getFileSystemSafeName()}.${TORRENT_TAG}.torrent`;
|
535
632
|
const buffer = new Blob([newTorrent.encode()], {
|
536
633
|
type: "application/x-bittorrent",
|
@@ -547,8 +644,8 @@ export default class QBittorrent {
|
|
547
644
|
if (category?.length) {
|
548
645
|
formData.append("category", await this.getCategoryForNewTorrent(category, savePath, autoTMM));
|
549
646
|
}
|
550
|
-
formData.append("tags", this.getTagsForNewTorrent(searcheeInfo,
|
551
|
-
formData.append("contentLayout", this.getLayoutForNewTorrent(searchee, searcheeInfo,
|
647
|
+
formData.append("tags", this.getTagsForNewTorrent(searcheeInfo, options.destinationDir));
|
648
|
+
formData.append("contentLayout", this.getLayoutForNewTorrent(searchee, searcheeInfo, options.destinationDir));
|
552
649
|
formData.append("skip_checking", (!toRecheck).toString());
|
553
650
|
formData.append(this.versionMajor >= 5 ? "stopped" : "paused", toRecheck.toString());
|
554
651
|
// for some reason the parser parses the last kv pair incorrectly
|
@@ -559,7 +656,7 @@ export default class QBittorrent {
|
|
559
656
|
}
|
560
657
|
catch (e) {
|
561
658
|
logger.error({
|
562
|
-
label:
|
659
|
+
label: this.label,
|
563
660
|
message: `Failed to add torrent (polling client to confirm): ${e.message}`,
|
564
661
|
});
|
565
662
|
logger.debug(e);
|
@@ -578,7 +675,7 @@ export default class QBittorrent {
|
|
578
675
|
}
|
579
676
|
catch (e) {
|
580
677
|
logger.error({
|
581
|
-
label:
|
678
|
+
label: this.label,
|
582
679
|
message: `Injection failed for ${getLogString(newTorrent)}: ${e.message}`,
|
583
680
|
});
|
584
681
|
logger.debug(e);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QBittorrent.js","sourceRoot":"","sources":["../../src/clients/QBittorrent.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"QBittorrent.js","sourceRoot":"","sources":["../../src/clients/QBittorrent.ts"],"names":[],"mappings":"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"}
|