cross-seed 6.0.0-9 → 6.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 +177 -68
- package/dist/action.js.map +1 -1
- package/dist/arr.js +62 -54
- package/dist/arr.js.map +1 -1
- package/dist/clients/Deluge.js +70 -46
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +110 -68
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +45 -22
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +14 -1
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +29 -9
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +46 -23
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +53 -57
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +89 -25
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js +4 -1
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +69 -10
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +4 -5
- package/dist/dataFiles.js.map +1 -1
- package/dist/db.js +2 -1
- package/dist/db.js.map +1 -1
- package/dist/decide.js +231 -146
- package/dist/decide.js.map +1 -1
- package/dist/diff.js +13 -3
- package/dist/diff.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/indexers.js +94 -33
- package/dist/indexers.js.map +1 -1
- package/dist/inject.js +448 -0
- package/dist/inject.js.map +1 -0
- package/dist/jobs.js +13 -6
- package/dist/jobs.js.map +1 -1
- package/dist/logger.js +27 -9
- package/dist/logger.js.map +1 -1
- package/dist/migrations/00-initialSchema.js.map +1 -1
- package/dist/migrations/05-caps.js.map +1 -1
- package/dist/migrations/06-uniqueDecisions.js +29 -0
- package/dist/migrations/06-uniqueDecisions.js.map +1 -0
- package/dist/migrations/07-limits.js +12 -0
- package/dist/migrations/07-limits.js.map +1 -0
- package/dist/migrations/migrations.js +4 -0
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/parseTorrent.js +6 -0
- package/dist/parseTorrent.js.map +1 -1
- package/dist/pipeline.js +224 -108
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +122 -55
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +7 -5
- package/dist/pushNotifier.js.map +1 -1
- package/dist/searchee.js +198 -17
- package/dist/searchee.js.map +1 -1
- package/dist/server.js +106 -54
- package/dist/server.js.map +1 -1
- package/dist/startup.js +16 -7
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +100 -37
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +323 -153
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +228 -43
- package/dist/utils.js.map +1 -1
- package/package.json +11 -6
package/dist/clients/Deluge.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
import ms from "ms";
|
2
|
-
import { InjectionResult,
|
2
|
+
import { InjectionResult, TORRENT_CATEGORY_SUFFIX, TORRENT_TAG, } from "../constants.js";
|
3
3
|
import { CrossSeedError } from "../errors.js";
|
4
4
|
import { Label, logger } from "../logger.js";
|
5
|
-
import { getRuntimeConfig } from "../runtimeConfig.js";
|
6
|
-
import { shouldRecheck, extractCredentialsFromUrl, wait } from "../utils.js";
|
7
5
|
import { resultOf, resultOfErr } from "../Result.js";
|
6
|
+
import { getRuntimeConfig } from "../runtimeConfig.js";
|
7
|
+
import { extractCredentialsFromUrl, getLogString, shouldRecheck, wait, } from "../utils.js";
|
8
8
|
var DelugeErrorCode;
|
9
9
|
(function (DelugeErrorCode) {
|
10
10
|
DelugeErrorCode[DelugeErrorCode["NO_AUTH"] = 1] = "NO_AUTH";
|
@@ -71,8 +71,6 @@ export default class Deluge {
|
|
71
71
|
if (this.delugeCookie)
|
72
72
|
headers.set("Cookie", this.delugeCookie);
|
73
73
|
let response, json;
|
74
|
-
const abortController = new AbortController();
|
75
|
-
setTimeout(() => void abortController.abort(), ms("10 seconds")).unref();
|
76
74
|
try {
|
77
75
|
response = await fetch(href, {
|
78
76
|
body: JSON.stringify({
|
@@ -82,11 +80,12 @@ export default class Deluge {
|
|
82
80
|
}),
|
83
81
|
method: "POST",
|
84
82
|
headers,
|
85
|
-
signal:
|
83
|
+
signal: AbortSignal.timeout(ms("10 seconds")),
|
86
84
|
});
|
87
85
|
}
|
88
86
|
catch (networkError) {
|
89
|
-
if (networkError.name === "AbortError"
|
87
|
+
if (networkError.name === "AbortError" ||
|
88
|
+
networkError.name === "TimeoutError") {
|
90
89
|
throw new Error(`Deluge method ${method} timed out after 10 seconds`);
|
91
90
|
}
|
92
91
|
throw new Error(`Failed to connect to Deluge at ${href}`, {
|
@@ -198,7 +197,7 @@ export default class Deluge {
|
|
198
197
|
logger.debug(e);
|
199
198
|
logger.warn({
|
200
199
|
label: Label.DELUGE,
|
201
|
-
message: `Failed to label ${
|
200
|
+
message: `Failed to label ${getLogString(newTorrent)} as ${label}`,
|
202
201
|
});
|
203
202
|
}
|
204
203
|
}
|
@@ -214,7 +213,7 @@ export default class Deluge {
|
|
214
213
|
try {
|
215
214
|
let torrentInfo;
|
216
215
|
if (searchee.infoHash) {
|
217
|
-
torrentInfo = await this.getTorrentInfo(searchee);
|
216
|
+
torrentInfo = await this.getTorrentInfo(searchee.infoHash);
|
218
217
|
if (!torrentInfo.complete) {
|
219
218
|
return InjectionResult.TORRENT_NOT_COMPLETE;
|
220
219
|
}
|
@@ -222,14 +221,14 @@ export default class Deluge {
|
|
222
221
|
if (!path && (!searchee.infoHash || !torrentInfo)) {
|
223
222
|
logger.debug({
|
224
223
|
label: Label.DELUGE,
|
225
|
-
message: `Injection failure: ${
|
224
|
+
message: `Injection failure: ${getLogString(searchee)} was missing critical data.`,
|
226
225
|
});
|
227
226
|
return InjectionResult.FAILURE;
|
228
227
|
}
|
229
228
|
const torrentFileName = `${newTorrent.getFileSystemSafeName()}.cross-seed.torrent`;
|
230
229
|
const encodedTorrentData = newTorrent.encode().toString("base64");
|
231
230
|
const torrentPath = path ? path : torrentInfo.save_path;
|
232
|
-
const params = this.formatData(torrentFileName, encodedTorrentData, torrentPath, decision);
|
231
|
+
const params = this.formatData(torrentFileName, encodedTorrentData, torrentPath, searchee, decision);
|
233
232
|
const addResponse = await this.call("core.add_torrent_file", params);
|
234
233
|
if (addResponse.isErr()) {
|
235
234
|
const addResponseError = addResponse.unwrapErr();
|
@@ -246,20 +245,18 @@ export default class Deluge {
|
|
246
245
|
else {
|
247
246
|
logger.debug({
|
248
247
|
label: Label.DELUGE,
|
249
|
-
message: `Unknown injection failure: ${
|
248
|
+
message: `Unknown injection failure: ${getLogString(newTorrent)}`,
|
250
249
|
});
|
251
250
|
return InjectionResult.FAILURE;
|
252
251
|
}
|
253
252
|
}
|
254
253
|
if (addResponse.isOk()) {
|
255
254
|
await this.setLabel(newTorrent, this.calculateLabel(searchee, torrentInfo));
|
256
|
-
if (shouldRecheck(decision)) {
|
255
|
+
if (shouldRecheck(searchee, decision)) {
|
257
256
|
// when paused, libtorrent doesnt start rechecking
|
258
257
|
// leaves torrent ready to download - ~99%
|
259
258
|
await wait(1000);
|
260
|
-
await this.
|
261
|
-
[newTorrent.infoHash],
|
262
|
-
]);
|
259
|
+
await this.recheckTorrent(newTorrent.infoHash);
|
263
260
|
}
|
264
261
|
}
|
265
262
|
}
|
@@ -273,15 +270,21 @@ export default class Deluge {
|
|
273
270
|
}
|
274
271
|
return InjectionResult.SUCCESS;
|
275
272
|
}
|
273
|
+
async recheckTorrent(infoHash) {
|
274
|
+
// Pause first as it may resume after recheck automatically
|
275
|
+
await this.call("core.pause_torrent", [[infoHash]]);
|
276
|
+
await this.call("core.force_recheck", [[infoHash]]);
|
277
|
+
}
|
276
278
|
/**
|
277
279
|
* formats the json for rpc calls to inject
|
278
280
|
* @param filename filename for the injecting torrent file
|
279
281
|
* @param filedump string with encoded torrent file
|
280
282
|
* @param path path to the torrent data
|
283
|
+
* @param searchee searchee of the original torrent matched
|
281
284
|
* @param decision decision by which the newTorrent was matched
|
282
285
|
*/
|
283
|
-
formatData(filename, filedump, path, decision) {
|
284
|
-
const toRecheck = shouldRecheck(decision);
|
286
|
+
formatData(filename, filedump, path, searchee, decision) {
|
287
|
+
const toRecheck = shouldRecheck(searchee, decision);
|
285
288
|
return [
|
286
289
|
filename,
|
287
290
|
filedump,
|
@@ -294,62 +297,83 @@ export default class Deluge {
|
|
294
297
|
}
|
295
298
|
/**
|
296
299
|
* returns directory of an infohash in deluge as a string
|
297
|
-
* @param searchee Searchee or Metafile for torrent to lookup in client
|
298
300
|
* @return Result containing either a string with path or reason it was not provided
|
301
|
+
* @param meta the metafile or searchee of the original torrent
|
302
|
+
* @param options object with options relating to filtering
|
299
303
|
*/
|
300
|
-
async getDownloadDir(
|
301
|
-
let
|
302
|
-
const params = [["save_path", "progress"], { hash:
|
304
|
+
async getDownloadDir(meta, options) {
|
305
|
+
let response;
|
306
|
+
const params = [["save_path", "progress"], { hash: meta.infoHash }];
|
303
307
|
try {
|
304
308
|
response = await this.call("web.update_ui", params);
|
305
309
|
}
|
306
310
|
catch (e) {
|
307
311
|
return resultOfErr("UNKNOWN_ERROR");
|
308
312
|
}
|
309
|
-
if (response.isOk()) {
|
310
|
-
|
311
|
-
if (!torrentResponse) {
|
312
|
-
return resultOfErr("UNKNOWN_ERROR");
|
313
|
-
}
|
314
|
-
torrent = torrentResponse[searchee.infoHash];
|
315
|
-
if (!torrent) {
|
316
|
-
return resultOfErr("NOT_FOUND");
|
317
|
-
}
|
318
|
-
if (torrent.progress !== 100) {
|
319
|
-
return resultOfErr("TORRENT_NOT_COMPLETE");
|
320
|
-
}
|
313
|
+
if (!response.isOk()) {
|
314
|
+
return resultOfErr("UNKNOWN_ERROR");
|
321
315
|
}
|
322
|
-
|
316
|
+
const torrentResponse = response.unwrap().torrents;
|
317
|
+
if (!torrentResponse) {
|
323
318
|
return resultOfErr("UNKNOWN_ERROR");
|
324
319
|
}
|
320
|
+
const torrent = torrentResponse[meta.infoHash];
|
321
|
+
if (!torrent) {
|
322
|
+
return resultOfErr("NOT_FOUND");
|
323
|
+
}
|
324
|
+
if (options.onlyCompleted && torrent.progress !== 100) {
|
325
|
+
return resultOfErr("TORRENT_NOT_COMPLETE");
|
326
|
+
}
|
325
327
|
return resultOf(torrent.save_path);
|
326
328
|
}
|
329
|
+
/**
|
330
|
+
* checks if a torrent is complete in deluge
|
331
|
+
* @param infoHash the infoHash of the torrent to check
|
332
|
+
* @return Result containing either a boolean or reason it was not provided
|
333
|
+
*/
|
334
|
+
async isTorrentComplete(infoHash) {
|
335
|
+
try {
|
336
|
+
const torrentInfo = await this.getTorrentInfo(infoHash);
|
337
|
+
return torrentInfo.complete ? resultOf(true) : resultOf(false);
|
338
|
+
}
|
339
|
+
catch (e) {
|
340
|
+
return resultOfErr("NOT_FOUND");
|
341
|
+
}
|
342
|
+
}
|
327
343
|
/**
|
328
344
|
* returns information needed to complete/validate injection
|
329
|
-
* @param searchee the Searchee for the torrent you are requesting TorrentInfo from
|
330
345
|
* @return Promise of TorrentInfo type
|
346
|
+
* @param infoHash infohash to query for in the client
|
331
347
|
*/
|
332
|
-
async getTorrentInfo(
|
333
|
-
if (!searchee.infoHash) {
|
334
|
-
throw new Error("Can't search a torrent without a infoHash");
|
335
|
-
}
|
348
|
+
async getTorrentInfo(infoHash) {
|
336
349
|
let torrent;
|
337
350
|
try {
|
338
351
|
const params = [
|
339
|
-
[
|
340
|
-
|
352
|
+
[
|
353
|
+
"name",
|
354
|
+
"state",
|
355
|
+
"progress",
|
356
|
+
"save_path",
|
357
|
+
"label",
|
358
|
+
"total_remaining",
|
359
|
+
],
|
360
|
+
{ hash: infoHash },
|
341
361
|
];
|
342
362
|
const response = (await this.call("web.update_ui", params)).unwrapOrThrow(new Error("failed to fetch the torrent list"));
|
343
363
|
if (response.torrents) {
|
344
|
-
torrent = response.torrents?.[
|
364
|
+
torrent = response.torrents?.[infoHash];
|
345
365
|
}
|
346
366
|
else {
|
347
367
|
throw new Error("Client returned unexpected response (object missing)");
|
348
368
|
}
|
349
369
|
if (torrent === undefined) {
|
350
|
-
throw new Error(`Torrent not found in client (${
|
370
|
+
throw new Error(`Torrent not found in client (${infoHash})`);
|
351
371
|
}
|
352
|
-
const completedTorrent = torrent.state === "
|
372
|
+
const completedTorrent = (torrent.state === "Paused" &&
|
373
|
+
(torrent.progress === 100 || !torrent.total_remaining)) ||
|
374
|
+
torrent.state === "Seeding" ||
|
375
|
+
torrent.progress === 100 ||
|
376
|
+
!torrent.total_remaining;
|
353
377
|
const torrentLabel = this.isLabelEnabled && torrent.label.length != 0
|
354
378
|
? torrent.label
|
355
379
|
: undefined;
|
@@ -362,7 +386,7 @@ export default class Deluge {
|
|
362
386
|
catch (e) {
|
363
387
|
logger.error({
|
364
388
|
label: Label.DELUGE,
|
365
|
-
message: `Failed to fetch torrent data: ${
|
389
|
+
message: `Failed to fetch torrent data: ${infoHash}`,
|
366
390
|
});
|
367
391
|
logger.debug(e);
|
368
392
|
throw new Error("web.update_ui: failed to fetch data from client", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Deluge.js","sourceRoot":"","sources":["../../src/clients/Deluge.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Deluge.js","sourceRoot":"","sources":["../../src/clients/Deluge.ts"],"names":[],"mappings":"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"}
|
@@ -1,16 +1,19 @@
|
|
1
|
-
import
|
2
|
-
import {
|
1
|
+
import ms from "ms";
|
2
|
+
import { dirname, resolve } from "path";
|
3
|
+
import { InjectionResult, TORRENT_CATEGORY_SUFFIX, TORRENT_TAG, } from "../constants.js";
|
3
4
|
import { CrossSeedError } from "../errors.js";
|
4
5
|
import { Label, logger } from "../logger.js";
|
5
|
-
import { getRuntimeConfig } from "../runtimeConfig.js";
|
6
|
-
import { shouldRecheck, extractCredentialsFromUrl, wait } from "../utils.js";
|
7
6
|
import { resultOf, resultOfErr } from "../Result.js";
|
7
|
+
import { getRuntimeConfig } from "../runtimeConfig.js";
|
8
|
+
import { extractCredentialsFromUrl, extractInt, getLogString, sanitizeInfoHash, shouldRecheck, wait, } from "../utils.js";
|
8
9
|
const X_WWW_FORM_URLENCODED = {
|
9
10
|
"Content-Type": "application/x-www-form-urlencoded",
|
10
11
|
};
|
11
12
|
export default class QBittorrent {
|
12
13
|
cookie;
|
13
14
|
url;
|
15
|
+
version;
|
16
|
+
versionMajor;
|
14
17
|
constructor() {
|
15
18
|
const { qbittorrentUrl } = getRuntimeConfig();
|
16
19
|
this.url = extractCredentialsFromUrl(qbittorrentUrl, "/api/v2").unwrapOrThrow(new CrossSeedError("qBittorrent url must be percent-encoded"));
|
@@ -34,15 +37,28 @@ export default class QBittorrent {
|
|
34
37
|
if (!this.cookie) {
|
35
38
|
throw new CrossSeedError(`qBittorrent login failed: Invalid username or password`);
|
36
39
|
}
|
40
|
+
const version = await this.request("/app/version", "", X_WWW_FORM_URLENCODED);
|
41
|
+
if (!version) {
|
42
|
+
throw new CrossSeedError(`qBittorrent login failed: Unable to retrieve version`);
|
43
|
+
}
|
44
|
+
this.version = version;
|
45
|
+
this.versionMajor = extractInt(this.version);
|
46
|
+
logger.info({
|
47
|
+
label: Label.QBITTORRENT,
|
48
|
+
message: `Logged in to qBittorrent ${this.version}`,
|
49
|
+
});
|
37
50
|
}
|
38
51
|
async validateConfig() {
|
39
52
|
await this.login();
|
40
53
|
await this.createTag();
|
41
54
|
}
|
42
55
|
async request(path, body, headers = {}, retries = 3) {
|
56
|
+
const bodyStr = body instanceof FormData
|
57
|
+
? JSON.stringify(Object.fromEntries(body))
|
58
|
+
: JSON.stringify(body).replace(/(?:hashes=)([a-z0-9]{40})/i, (match, hash) => match.replace(hash, sanitizeInfoHash(hash)));
|
43
59
|
logger.verbose({
|
44
60
|
label: Label.QBITTORRENT,
|
45
|
-
message: `Making request (${retries}) to ${path} with body ${
|
61
|
+
message: `Making request (${retries}) to ${path} with body ${bodyStr}`,
|
46
62
|
});
|
47
63
|
let response;
|
48
64
|
try {
|
@@ -82,36 +98,32 @@ export default class QBittorrent {
|
|
82
98
|
? "Subfolder"
|
83
99
|
: "Original";
|
84
100
|
}
|
85
|
-
|
101
|
+
getCategoryForNewTorrent(category) {
|
86
102
|
const { duplicateCategories, linkCategory } = getRuntimeConfig();
|
87
|
-
|
88
|
-
|
89
|
-
* torrent searchee
|
90
|
-
*/
|
91
|
-
const categoryForTagging = searcheeInfo
|
92
|
-
? searcheeInfo.category
|
93
|
-
: category;
|
94
|
-
if (!categoryForTagging?.length ||
|
95
|
-
categoryForTagging === linkCategory) {
|
96
|
-
return TORRENT_TAG;
|
103
|
+
if (!duplicateCategories) {
|
104
|
+
return category;
|
97
105
|
}
|
98
|
-
if (
|
99
|
-
if
|
100
|
-
return `${TORRENT_TAG},${categoryForTagging}`;
|
101
|
-
}
|
102
|
-
else {
|
103
|
-
return TORRENT_TAG;
|
104
|
-
}
|
106
|
+
if (!category.length || category === linkCategory) {
|
107
|
+
return category; // Use tags for category duplication if linking
|
105
108
|
}
|
106
|
-
if (
|
107
|
-
return
|
109
|
+
if (category.endsWith(TORRENT_CATEGORY_SUFFIX)) {
|
110
|
+
return category;
|
108
111
|
}
|
109
|
-
|
110
|
-
|
112
|
+
return `${category}${TORRENT_CATEGORY_SUFFIX}`;
|
113
|
+
}
|
114
|
+
getTagsForNewTorrent(searcheeInfo, path) {
|
115
|
+
const { duplicateCategories, linkCategory } = getRuntimeConfig();
|
116
|
+
if (!duplicateCategories || !searcheeInfo || !path) {
|
117
|
+
return TORRENT_TAG; // Require path to duplicate category using tags
|
111
118
|
}
|
112
|
-
|
119
|
+
const searcheeCategory = searcheeInfo.category;
|
120
|
+
if (!searcheeCategory.length || searcheeCategory === linkCategory) {
|
113
121
|
return TORRENT_TAG;
|
114
122
|
}
|
123
|
+
if (searcheeCategory.endsWith(TORRENT_CATEGORY_SUFFIX)) {
|
124
|
+
return `${TORRENT_TAG},${searcheeCategory}`;
|
125
|
+
}
|
126
|
+
return `${TORRENT_TAG},${searcheeCategory}${TORRENT_CATEGORY_SUFFIX}`;
|
115
127
|
}
|
116
128
|
async createTag() {
|
117
129
|
await this.request("/torrents/createTags", `tags=${TORRENT_TAG}`, X_WWW_FORM_URLENCODED);
|
@@ -119,26 +131,30 @@ export default class QBittorrent {
|
|
119
131
|
async addTorrent(formData) {
|
120
132
|
await this.request("/torrents/add", formData);
|
121
133
|
}
|
122
|
-
async recheckTorrent(
|
123
|
-
|
134
|
+
async recheckTorrent(infoHash) {
|
135
|
+
// Pause first as it may resume after recheck automatically
|
136
|
+
await this.request(`/torrents/${this.versionMajor >= 5 ? "stop" : "pause"}`, `hashes=${infoHash}`, X_WWW_FORM_URLENCODED);
|
137
|
+
await this.request("/torrents/recheck", `hashes=${infoHash}`, X_WWW_FORM_URLENCODED);
|
124
138
|
}
|
125
139
|
/*
|
126
140
|
@param searchee the Searchee we are generating off (in client)
|
127
|
-
@return either a string containing the path or
|
141
|
+
@return either a string containing the path or an error message
|
128
142
|
*/
|
129
|
-
async getDownloadDir(
|
143
|
+
async getDownloadDir(meta, options) {
|
130
144
|
try {
|
131
|
-
const torrentInfo = await this.getTorrentInfo(
|
145
|
+
const torrentInfo = await this.getTorrentInfo(meta.infoHash);
|
132
146
|
if (!torrentInfo) {
|
133
147
|
return resultOfErr("NOT_FOUND");
|
134
148
|
}
|
135
|
-
if (
|
149
|
+
if (options.onlyCompleted &&
|
150
|
+
!this.isTorrentInfoComplete(torrentInfo)) {
|
136
151
|
return resultOfErr("TORRENT_NOT_COMPLETE");
|
137
152
|
}
|
138
|
-
const savePath = this.getCorrectSavePath(
|
153
|
+
const savePath = this.getCorrectSavePath(meta, torrentInfo);
|
139
154
|
return resultOf(savePath);
|
140
155
|
}
|
141
156
|
catch (e) {
|
157
|
+
logger.debug(e);
|
142
158
|
if (e.message.includes("retrieve")) {
|
143
159
|
return resultOfErr("NOT_FOUND");
|
144
160
|
}
|
@@ -171,26 +187,42 @@ export default class QBittorrent {
|
|
171
187
|
@param hash the hash of the torrent
|
172
188
|
@return the torrent if it exists
|
173
189
|
*/
|
174
|
-
async getTorrentInfo(hash) {
|
190
|
+
async getTorrentInfo(hash, retries = 0) {
|
175
191
|
if (!hash)
|
176
192
|
return undefined;
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
193
|
+
for (let i = 0; i <= retries; i++) {
|
194
|
+
const responseText = await this.request("/torrents/info", `hashes=${hash}`, X_WWW_FORM_URLENCODED);
|
195
|
+
if (responseText) {
|
196
|
+
const torrents = JSON.parse(responseText);
|
197
|
+
if (torrents.length > 0) {
|
198
|
+
return torrents[0];
|
199
|
+
}
|
200
|
+
}
|
201
|
+
const torrents = await this.getAllTorrentInfo();
|
202
|
+
const torrentInfo = torrents.find((torrent) => hash === torrent.hash ||
|
203
|
+
hash === torrent.infohash_v1 ||
|
204
|
+
hash === torrent.infohash_v2);
|
205
|
+
if (torrentInfo) {
|
206
|
+
return torrentInfo;
|
207
|
+
}
|
208
|
+
if (i < retries) {
|
209
|
+
await wait(ms("1 second") * 2 ** i);
|
182
210
|
}
|
183
211
|
}
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
212
|
+
return undefined;
|
213
|
+
}
|
214
|
+
/**
|
215
|
+
* @param infoHash the infohash of the torrent
|
216
|
+
* @returns whether the torrent is complete
|
217
|
+
*/
|
218
|
+
async isTorrentComplete(infoHash) {
|
219
|
+
const torrentInfo = await this.getTorrentInfo(infoHash);
|
220
|
+
if (!torrentInfo) {
|
221
|
+
return resultOfErr("NOT_FOUND");
|
222
|
+
}
|
223
|
+
return resultOf(this.isTorrentInfoComplete(torrentInfo));
|
192
224
|
}
|
193
|
-
|
225
|
+
isTorrentInfoComplete(torrentInfo) {
|
194
226
|
return [
|
195
227
|
"uploading",
|
196
228
|
"pausedUP",
|
@@ -206,10 +238,11 @@ export default class QBittorrent {
|
|
206
238
|
return false;
|
207
239
|
if (dirname(searchee.files[0].path) !== ".")
|
208
240
|
return false;
|
209
|
-
return dirname(searcheeInfo.content_path) !==
|
241
|
+
return (resolve(dirname(searcheeInfo.content_path)) !==
|
242
|
+
resolve(searcheeInfo.save_path));
|
210
243
|
}
|
211
244
|
async inject(newTorrent, searchee, decision, path) {
|
212
|
-
const {
|
245
|
+
const { linkCategory } = getRuntimeConfig();
|
213
246
|
try {
|
214
247
|
if (await this.getTorrentInfo(newTorrent.infoHash)) {
|
215
248
|
return InjectionResult.ALREADY_EXISTS;
|
@@ -218,12 +251,12 @@ export default class QBittorrent {
|
|
218
251
|
if (!searcheeInfo) {
|
219
252
|
if (!path) {
|
220
253
|
// This is never possible, being made explicit here
|
221
|
-
throw new Error(`Searchee torrent may have been deleted: ${searchee
|
254
|
+
throw new Error(`Searchee torrent may have been deleted: ${getLogString(searchee)}`);
|
222
255
|
}
|
223
256
|
else if (searchee.infoHash) {
|
224
|
-
logger.
|
257
|
+
logger.warn({
|
225
258
|
label: Label.QBITTORRENT,
|
226
|
-
message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${searchee
|
259
|
+
message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${getLogString(searchee)}`,
|
227
260
|
});
|
228
261
|
}
|
229
262
|
}
|
@@ -236,7 +269,7 @@ export default class QBittorrent {
|
|
236
269
|
}
|
237
270
|
: {
|
238
271
|
savePath: searcheeInfo.save_path,
|
239
|
-
isComplete: this.
|
272
|
+
isComplete: this.isTorrentInfoComplete(searcheeInfo),
|
240
273
|
autoTMM: searcheeInfo.auto_tmm,
|
241
274
|
category: searcheeInfo.category,
|
242
275
|
};
|
@@ -246,39 +279,48 @@ export default class QBittorrent {
|
|
246
279
|
const buffer = new Blob([newTorrent.encode()], {
|
247
280
|
type: "application/x-bittorrent",
|
248
281
|
});
|
249
|
-
const toRecheck = shouldRecheck(decision);
|
282
|
+
const toRecheck = shouldRecheck(searchee, decision);
|
250
283
|
// ---------------------- Building form data ----------------------
|
251
284
|
const formData = new FormData();
|
252
285
|
formData.append("torrents", buffer, filename);
|
253
|
-
if (
|
286
|
+
if (!autoTMM) {
|
254
287
|
formData.append("downloadPath", savePath);
|
255
288
|
formData.append("savepath", savePath);
|
256
289
|
}
|
257
|
-
formData.append("autoTMM",
|
258
|
-
formData.append("category", category);
|
259
|
-
formData.append("tags", this.getTagsForNewTorrent(
|
290
|
+
formData.append("autoTMM", autoTMM.toString());
|
291
|
+
formData.append("category", this.getCategoryForNewTorrent(category));
|
292
|
+
formData.append("tags", this.getTagsForNewTorrent(searcheeInfo, path));
|
260
293
|
formData.append("contentLayout", this.getLayoutForNewTorrent(searchee, searcheeInfo, path));
|
261
294
|
formData.append("skip_checking", (!toRecheck).toString());
|
262
|
-
formData.append("paused", toRecheck.toString());
|
295
|
+
formData.append(this.versionMajor >= 5 ? "stopped" : "paused", toRecheck.toString());
|
263
296
|
// for some reason the parser parses the last kv pair incorrectly
|
264
297
|
// it concats the value and the sentinel
|
265
298
|
formData.append("foo", "bar");
|
266
|
-
|
267
|
-
|
268
|
-
|
299
|
+
try {
|
300
|
+
await this.addTorrent(formData);
|
301
|
+
}
|
302
|
+
catch (e) {
|
303
|
+
logger.error({
|
304
|
+
label: Label.QBITTORRENT,
|
305
|
+
message: `Failed to add torrent (polling client to confirm): ${e.message}`,
|
306
|
+
});
|
307
|
+
logger.debug(e);
|
308
|
+
}
|
309
|
+
const newInfo = await this.getTorrentInfo(newTorrent.infoHash, 5);
|
269
310
|
if (!newInfo) {
|
270
311
|
throw new Error(`Failed to retrieve torrent after adding`);
|
271
312
|
}
|
272
313
|
if (toRecheck) {
|
273
|
-
await this.recheckTorrent(newInfo);
|
314
|
+
await this.recheckTorrent(newInfo.hash);
|
274
315
|
}
|
275
316
|
return InjectionResult.SUCCESS;
|
276
317
|
}
|
277
318
|
catch (e) {
|
278
|
-
logger.
|
319
|
+
logger.error({
|
279
320
|
label: Label.QBITTORRENT,
|
280
|
-
message: `Injection failed: ${e.message}`,
|
321
|
+
message: `Injection failed for ${getLogString(newTorrent)}: ${e.message}`,
|
281
322
|
});
|
323
|
+
logger.debug(e);
|
282
324
|
return InjectionResult.FAILURE;
|
283
325
|
}
|
284
326
|
}
|
@@ -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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"}
|