cross-seed 6.0.0-3 → 6.0.0-31

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.
Files changed (69) hide show
  1. package/dist/Result.js +17 -11
  2. package/dist/Result.js.map +1 -1
  3. package/dist/action.js +188 -74
  4. package/dist/action.js.map +1 -1
  5. package/dist/arr.js +197 -0
  6. package/dist/arr.js.map +1 -0
  7. package/dist/clients/Deluge.js +153 -81
  8. package/dist/clients/Deluge.js.map +1 -1
  9. package/dist/clients/QBittorrent.js +95 -64
  10. package/dist/clients/QBittorrent.js.map +1 -1
  11. package/dist/clients/RTorrent.js +31 -10
  12. package/dist/clients/RTorrent.js.map +1 -1
  13. package/dist/clients/TorrentClient.js.map +1 -1
  14. package/dist/clients/Transmission.js +30 -10
  15. package/dist/clients/Transmission.js.map +1 -1
  16. package/dist/cmd.js +32 -16
  17. package/dist/cmd.js.map +1 -1
  18. package/dist/config.template.cjs +83 -46
  19. package/dist/config.template.cjs.map +1 -1
  20. package/dist/configSchema.js +98 -13
  21. package/dist/configSchema.js.map +1 -1
  22. package/dist/configuration.js +3 -0
  23. package/dist/configuration.js.map +1 -1
  24. package/dist/constants.js +113 -6
  25. package/dist/constants.js.map +1 -1
  26. package/dist/dataFiles.js +4 -5
  27. package/dist/dataFiles.js.map +1 -1
  28. package/dist/decide.js +276 -160
  29. package/dist/decide.js.map +1 -1
  30. package/dist/diff.js +12 -2
  31. package/dist/diff.js.map +1 -1
  32. package/dist/errors.js +5 -2
  33. package/dist/errors.js.map +1 -1
  34. package/dist/indexers.js +31 -4
  35. package/dist/indexers.js.map +1 -1
  36. package/dist/inject.js +409 -0
  37. package/dist/inject.js.map +1 -0
  38. package/dist/jobs.js +8 -1
  39. package/dist/jobs.js.map +1 -1
  40. package/dist/logger.js +20 -5
  41. package/dist/logger.js.map +1 -1
  42. package/dist/migrations/05-caps.js +16 -0
  43. package/dist/migrations/05-caps.js.map +1 -0
  44. package/dist/migrations/06-uniqueDecisions.js +29 -0
  45. package/dist/migrations/06-uniqueDecisions.js.map +1 -0
  46. package/dist/migrations/migrations.js +11 -1
  47. package/dist/migrations/migrations.js.map +1 -1
  48. package/dist/parseTorrent.js +6 -0
  49. package/dist/parseTorrent.js.map +1 -1
  50. package/dist/pipeline.js +202 -95
  51. package/dist/pipeline.js.map +1 -1
  52. package/dist/preFilter.js +130 -52
  53. package/dist/preFilter.js.map +1 -1
  54. package/dist/pushNotifier.js +6 -4
  55. package/dist/pushNotifier.js.map +1 -1
  56. package/dist/runtimeConfig.js.map +1 -1
  57. package/dist/searchee.js +190 -19
  58. package/dist/searchee.js.map +1 -1
  59. package/dist/server.js +70 -32
  60. package/dist/server.js.map +1 -1
  61. package/dist/startup.js +12 -1
  62. package/dist/startup.js.map +1 -1
  63. package/dist/torrent.js +103 -40
  64. package/dist/torrent.js.map +1 -1
  65. package/dist/torznab.js +304 -90
  66. package/dist/torznab.js.map +1 -1
  67. package/dist/utils.js +215 -33
  68. package/dist/utils.js.map +1 -1
  69. package/package.json +3 -1
@@ -1,9 +1,10 @@
1
- import { dirname } from "path";
1
+ import { dirname, resolve } from "path";
2
2
  import { InjectionResult, TORRENT_TAG, TORRENT_CATEGORY_SUFFIX, } from "../constants.js";
3
3
  import { CrossSeedError } from "../errors.js";
4
4
  import { Label, logger } from "../logger.js";
5
+ import ms from "ms";
5
6
  import { getRuntimeConfig } from "../runtimeConfig.js";
6
- import { shouldRecheck, extractCredentialsFromUrl, wait } from "../utils.js";
7
+ import { shouldRecheck, extractCredentialsFromUrl, wait, getLogString, sanitizeInfoHash, } from "../utils.js";
7
8
  import { resultOf, resultOfErr } from "../Result.js";
8
9
  const X_WWW_FORM_URLENCODED = {
9
10
  "Content-Type": "application/x-www-form-urlencoded",
@@ -40,9 +41,12 @@ export default class QBittorrent {
40
41
  await this.createTag();
41
42
  }
42
43
  async request(path, body, headers = {}, retries = 3) {
44
+ const bodyStr = body instanceof FormData
45
+ ? JSON.stringify(Object.fromEntries(body))
46
+ : JSON.stringify(body).replace(/(?:hashes=)([a-z0-9]{40})/i, (match, hash) => match.replace(hash, sanitizeInfoHash(hash)));
43
47
  logger.verbose({
44
48
  label: Label.QBITTORRENT,
45
- message: `Making request (${retries}) to ${path} with body ${JSON.stringify(body)}`,
49
+ message: `Making request (${retries}) to ${path} with body ${bodyStr}`,
46
50
  });
47
51
  let response;
48
52
  try {
@@ -82,36 +86,32 @@ export default class QBittorrent {
82
86
  ? "Subfolder"
83
87
  : "Original";
84
88
  }
85
- getTagsForNewTorrent(searchee, searcheeInfo, category) {
89
+ getCategoryForNewTorrent(category) {
86
90
  const { duplicateCategories, linkCategory } = getRuntimeConfig();
87
- /* get the original category if torrent based - cuz otherwise we
88
- * use 'category'. this addresses path being truthy but still being
89
- * torrent searchee
90
- */
91
- const categoryForTagging = searcheeInfo
92
- ? searcheeInfo.category
93
- : category;
94
- if (!categoryForTagging?.length ||
95
- categoryForTagging === linkCategory) {
96
- return TORRENT_TAG;
91
+ if (!duplicateCategories) {
92
+ return category;
97
93
  }
98
- if (categoryForTagging.endsWith(TORRENT_CATEGORY_SUFFIX)) {
99
- if (duplicateCategories) {
100
- return `${TORRENT_TAG},${categoryForTagging}`;
101
- }
102
- else {
103
- return TORRENT_TAG;
104
- }
94
+ if (!category.length || category === linkCategory) {
95
+ return category; // Use tags for category duplication if linking
105
96
  }
106
- if (!searchee.infoHash) {
107
- return TORRENT_TAG;
97
+ if (category.endsWith(TORRENT_CATEGORY_SUFFIX)) {
98
+ return category;
108
99
  }
109
- else if (duplicateCategories) {
110
- return `${TORRENT_TAG},${categoryForTagging}${TORRENT_CATEGORY_SUFFIX}`;
100
+ return `${category}${TORRENT_CATEGORY_SUFFIX}`;
101
+ }
102
+ getTagsForNewTorrent(searcheeInfo, path) {
103
+ const { duplicateCategories, linkCategory } = getRuntimeConfig();
104
+ if (!duplicateCategories || !searcheeInfo || !path) {
105
+ return TORRENT_TAG; // Require path to duplicate category using tags
111
106
  }
112
- else {
107
+ const searcheeCategory = searcheeInfo.category;
108
+ if (!searcheeCategory.length || searcheeCategory === linkCategory) {
113
109
  return TORRENT_TAG;
114
110
  }
111
+ if (searcheeCategory.endsWith(TORRENT_CATEGORY_SUFFIX)) {
112
+ return `${TORRENT_TAG},${searcheeCategory}`;
113
+ }
114
+ return `${TORRENT_TAG},${searcheeCategory}${TORRENT_CATEGORY_SUFFIX}`;
115
115
  }
116
116
  async createTag() {
117
117
  await this.request("/torrents/createTags", `tags=${TORRENT_TAG}`, X_WWW_FORM_URLENCODED);
@@ -119,26 +119,30 @@ export default class QBittorrent {
119
119
  async addTorrent(formData) {
120
120
  await this.request("/torrents/add", formData);
121
121
  }
122
- async recheckTorrent(torrentInfo) {
123
- await this.request("/torrents/recheck", `hashes=${torrentInfo.hash}`, X_WWW_FORM_URLENCODED);
122
+ async recheckTorrent(infoHash) {
123
+ // Pause first as it may resume after recheck automatically
124
+ await this.request("/torrents/pause", `hashes=${infoHash}`, X_WWW_FORM_URLENCODED);
125
+ await this.request("/torrents/recheck", `hashes=${infoHash}`, X_WWW_FORM_URLENCODED);
124
126
  }
125
127
  /*
126
128
  @param searchee the Searchee we are generating off (in client)
127
129
  @return either a string containing the path or a error mesage
128
130
  */
129
- async getDownloadDir(searchee) {
131
+ async getDownloadDir(meta, options) {
130
132
  try {
131
- const torrentInfo = await this.getTorrentInfo(searchee.infoHash);
133
+ const torrentInfo = await this.getTorrentInfo(meta.infoHash);
132
134
  if (!torrentInfo) {
133
135
  return resultOfErr("NOT_FOUND");
134
136
  }
135
- if (!this.isTorrentComplete(torrentInfo)) {
137
+ if (options.onlyCompleted &&
138
+ !this.isTorrentInfoComplete(torrentInfo)) {
136
139
  return resultOfErr("TORRENT_NOT_COMPLETE");
137
140
  }
138
- const savePath = this.getCorrectSavePath(searchee, torrentInfo);
141
+ const savePath = this.getCorrectSavePath(meta, torrentInfo);
139
142
  return resultOf(savePath);
140
143
  }
141
144
  catch (e) {
145
+ logger.debug(e);
142
146
  if (e.message.includes("retrieve")) {
143
147
  return resultOfErr("NOT_FOUND");
144
148
  }
@@ -171,26 +175,42 @@ export default class QBittorrent {
171
175
  @param hash the hash of the torrent
172
176
  @return the torrent if it exists
173
177
  */
174
- async getTorrentInfo(hash) {
178
+ async getTorrentInfo(hash, retries = 0) {
175
179
  if (!hash)
176
180
  return undefined;
177
- const responseText = await this.request("/torrents/info", `hashes=${hash}`, X_WWW_FORM_URLENCODED);
178
- if (responseText) {
179
- const torrents = JSON.parse(responseText);
180
- if (torrents.length > 0) {
181
- return torrents[0];
181
+ for (let i = 0; i <= retries; i++) {
182
+ const responseText = await this.request("/torrents/info", `hashes=${hash}`, X_WWW_FORM_URLENCODED);
183
+ if (responseText) {
184
+ const torrents = JSON.parse(responseText);
185
+ if (torrents.length > 0) {
186
+ return torrents[0];
187
+ }
188
+ }
189
+ const torrents = await this.getAllTorrentInfo();
190
+ const torrentInfo = torrents.find((torrent) => hash === torrent.hash ||
191
+ hash === torrent.infohash_v1 ||
192
+ hash === torrent.infohash_v2);
193
+ if (torrentInfo) {
194
+ return torrentInfo;
195
+ }
196
+ if (i < retries) {
197
+ await wait(ms("1 second") * 2 ** i);
182
198
  }
183
199
  }
184
- logger.verbose({
185
- label: Label.QBITTORRENT,
186
- message: `Failed to retrieve torrent info using infohash_v1 ${hash}, checking all hashes`,
187
- });
188
- const torrents = await this.getAllTorrentInfo();
189
- return torrents.find((torrent) => hash === torrent.hash ||
190
- hash === torrent.infohash_v1 ||
191
- hash === torrent.infohash_v2);
200
+ return undefined;
201
+ }
202
+ /**
203
+ * @param infoHash the infohash of the torrent
204
+ * @returns whether the torrent is complete
205
+ */
206
+ async isTorrentComplete(infoHash) {
207
+ const torrentInfo = await this.getTorrentInfo(infoHash);
208
+ if (!torrentInfo) {
209
+ return resultOfErr("NOT_FOUND");
210
+ }
211
+ return resultOf(this.isTorrentInfoComplete(torrentInfo));
192
212
  }
193
- isTorrentComplete(torrentInfo) {
213
+ isTorrentInfoComplete(torrentInfo) {
194
214
  return [
195
215
  "uploading",
196
216
  "pausedUP",
@@ -206,10 +226,11 @@ export default class QBittorrent {
206
226
  return false;
207
227
  if (dirname(searchee.files[0].path) !== ".")
208
228
  return false;
209
- return dirname(searcheeInfo.content_path) !== searcheeInfo.save_path;
229
+ return (resolve(dirname(searcheeInfo.content_path)) !==
230
+ resolve(searcheeInfo.save_path));
210
231
  }
211
232
  async inject(newTorrent, searchee, decision, path) {
212
- const { flatLinking, linkCategory } = getRuntimeConfig();
233
+ const { linkCategory } = getRuntimeConfig();
213
234
  try {
214
235
  if (await this.getTorrentInfo(newTorrent.infoHash)) {
215
236
  return InjectionResult.ALREADY_EXISTS;
@@ -218,12 +239,12 @@ export default class QBittorrent {
218
239
  if (!searcheeInfo) {
219
240
  if (!path) {
220
241
  // This is never possible, being made explicit here
221
- throw new Error(`Searchee torrent may have been deleted: ${searchee.name} [${searchee.infoHash}]`);
242
+ throw new Error(`Searchee torrent may have been deleted: ${getLogString(searchee)}`);
222
243
  }
223
244
  else if (searchee.infoHash) {
224
- logger.warning({
245
+ logger.warn({
225
246
  label: Label.QBITTORRENT,
226
- message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${searchee.name} [${searchee.infoHash}]`,
247
+ message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${getLogString(searchee)}`,
227
248
  });
228
249
  }
229
250
  }
@@ -236,7 +257,7 @@ export default class QBittorrent {
236
257
  }
237
258
  : {
238
259
  savePath: searcheeInfo.save_path,
239
- isComplete: this.isTorrentComplete(searcheeInfo),
260
+ isComplete: this.isTorrentInfoComplete(searcheeInfo),
240
261
  autoTMM: searcheeInfo.auto_tmm,
241
262
  category: searcheeInfo.category,
242
263
  };
@@ -246,38 +267,48 @@ export default class QBittorrent {
246
267
  const buffer = new Blob([newTorrent.encode()], {
247
268
  type: "application/x-bittorrent",
248
269
  });
249
- const toRecheck = shouldRecheck(decision);
270
+ const toRecheck = shouldRecheck(searchee, decision);
250
271
  // ---------------------- Building form data ----------------------
251
272
  const formData = new FormData();
252
273
  formData.append("torrents", buffer, filename);
253
- if (path) {
274
+ if (!autoTMM) {
275
+ formData.append("downloadPath", savePath);
254
276
  formData.append("savepath", savePath);
255
277
  }
256
- formData.append("autoTMM", flatLinking && searchee.infoHash ? autoTMM.toString() : "false");
257
- formData.append("category", category);
258
- formData.append("tags", this.getTagsForNewTorrent(searchee, searcheeInfo, category));
278
+ formData.append("autoTMM", autoTMM.toString());
279
+ formData.append("category", this.getCategoryForNewTorrent(category));
280
+ formData.append("tags", this.getTagsForNewTorrent(searcheeInfo, path));
259
281
  formData.append("contentLayout", this.getLayoutForNewTorrent(searchee, searcheeInfo, path));
260
282
  formData.append("skip_checking", (!toRecheck).toString());
261
283
  formData.append("paused", toRecheck.toString());
262
284
  // for some reason the parser parses the last kv pair incorrectly
263
285
  // it concats the value and the sentinel
264
286
  formData.append("foo", "bar");
265
- await this.addTorrent(formData);
266
- await wait(1000);
267
- const newInfo = await this.getTorrentInfo(newTorrent.infoHash);
287
+ try {
288
+ await this.addTorrent(formData);
289
+ }
290
+ catch (e) {
291
+ logger.error({
292
+ label: Label.QBITTORRENT,
293
+ message: `Failed to add torrent (polling client to confirm): ${e.message}`,
294
+ });
295
+ logger.debug(e);
296
+ }
297
+ const newInfo = await this.getTorrentInfo(newTorrent.infoHash, 5);
268
298
  if (!newInfo) {
269
299
  throw new Error(`Failed to retrieve torrent after adding`);
270
300
  }
271
301
  if (toRecheck) {
272
- await this.recheckTorrent(newInfo);
302
+ await this.recheckTorrent(newInfo.hash);
273
303
  }
274
304
  return InjectionResult.SUCCESS;
275
305
  }
276
306
  catch (e) {
277
- logger.debug({
307
+ logger.error({
278
308
  label: Label.QBITTORRENT,
279
- message: `Injection failed: ${e.message}`,
309
+ message: `Injection failed for ${getLogString(newTorrent)}: ${e.message}`,
280
310
  });
311
+ logger.debug(e);
281
312
  return InjectionResult.FAILURE;
282
313
  }
283
314
  }
@@ -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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"}
@@ -2,7 +2,7 @@ import { stat, unlink, writeFile } from "fs/promises";
2
2
  import { dirname, join, resolve, sep } from "path";
3
3
  import { inspect } from "util";
4
4
  import xmlrpc from "xmlrpc";
5
- import { InjectionResult, TORRENT_TAG } from "../constants.js";
5
+ import { InjectionResult, TORRENT_TAG, } from "../constants.js";
6
6
  import { CrossSeedError } from "../errors.js";
7
7
  import { Label, logger } from "../logger.js";
8
8
  import { Metafile } from "../parseTorrent.js";
@@ -83,8 +83,8 @@ export default class RTorrent {
83
83
  const downloadList = await this.methodCallP("download_list", []);
84
84
  return downloadList.includes(infoHash.toUpperCase());
85
85
  }
86
- async checkOriginalTorrent(searchee) {
87
- const infoHash = searchee.infoHash.toUpperCase();
86
+ async checkOriginalTorrent(data, onlyCompleted) {
87
+ const infoHash = data.infoHash.toUpperCase();
88
88
  let response;
89
89
  try {
90
90
  response = await this.methodCallP("system.multicall", [
@@ -122,7 +122,7 @@ export default class RTorrent {
122
122
  }
123
123
  const [[directoryBase], [isCompleteStr], [isMultiFileStr]] = response;
124
124
  const isComplete = Boolean(Number(isCompleteStr));
125
- if (!isComplete) {
125
+ if (onlyCompleted && !isComplete) {
126
126
  return resultOfErr("TORRENT_NOT_COMPLETE");
127
127
  }
128
128
  return resultOf({
@@ -144,7 +144,7 @@ export default class RTorrent {
144
144
  return resultOf({ downloadDir: path, basePath, directoryBase });
145
145
  }
146
146
  else {
147
- const result = await this.checkOriginalTorrent(searchee);
147
+ const result = await this.checkOriginalTorrent(searchee, true);
148
148
  return result.mapOk(({ directoryBase }) => ({
149
149
  directoryBase,
150
150
  downloadDir: meta.isSingleFileTorrent
@@ -169,14 +169,33 @@ export default class RTorrent {
169
169
  throw new CrossSeedError(`Failed to reach rTorrent at ${rtorrentRpcUrl}`);
170
170
  }
171
171
  }
172
- async getDownloadDir(searchee) {
173
- const result = await this.checkOriginalTorrent(searchee);
172
+ async getDownloadDir(meta, options) {
173
+ const result = await this.checkOriginalTorrent(meta, options.onlyCompleted);
174
174
  return result
175
175
  .mapOk(({ directoryBase, isMultiFile }) => {
176
176
  return isMultiFile ? dirname(directoryBase) : directoryBase;
177
177
  })
178
178
  .mapErr((error) => (error === "FAILURE" ? "UNKNOWN_ERROR" : error));
179
179
  }
180
+ async isTorrentComplete(infoHash) {
181
+ try {
182
+ const response = await this.methodCallP("d.complete", [
183
+ infoHash,
184
+ ]);
185
+ if (response.length === 0) {
186
+ return resultOfErr("NOT_FOUND");
187
+ }
188
+ return resultOf(response[0] === "1");
189
+ }
190
+ catch (e) {
191
+ return resultOfErr("NOT_FOUND");
192
+ }
193
+ }
194
+ async recheckTorrent(infoHash) {
195
+ // Pause first as it may resume after recheck automatically
196
+ await this.methodCallP("d.pause", [infoHash]);
197
+ await this.methodCallP("d.check_hash", [infoHash]);
198
+ }
180
199
  async inject(meta, searchee, decision, path) {
181
200
  const { outputDir } = getRuntimeConfig();
182
201
  if (await this.checkForInfoHashInClient(meta.infoHash)) {
@@ -184,7 +203,7 @@ export default class RTorrent {
184
203
  }
185
204
  const result = await this.getDownloadLocation(meta, searchee, path);
186
205
  if (result.isErr()) {
187
- switch (result.unwrapErrOrThrow()) {
206
+ switch (result.unwrapErr()) {
188
207
  case "NOT_FOUND":
189
208
  return InjectionResult.FAILURE;
190
209
  case "TORRENT_NOT_COMPLETE":
@@ -193,10 +212,12 @@ export default class RTorrent {
193
212
  return InjectionResult.FAILURE;
194
213
  }
195
214
  }
196
- const { directoryBase, basePath } = result.unwrapOrThrow();
215
+ const { directoryBase, basePath } = result.unwrap();
197
216
  const torrentFilePath = resolve(outputDir, `${meta.name}.tmp.${Date.now()}.torrent`);
198
217
  await saveWithLibTorrentResume(meta, torrentFilePath, basePath);
199
- const loadType = shouldRecheck(decision) ? "load" : "load.start";
218
+ const loadType = shouldRecheck(searchee, decision)
219
+ ? "load"
220
+ : "load.start";
200
221
  for (let i = 0; i < 5; i++) {
201
222
  try {
202
223
  await this.methodCallP(loadType, [
@@ -1 +1 @@
1
- {"version":3,"file":"RTorrent.js","sourceRoot":"","sources":["../../src/clients/RTorrent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RTorrent.js","sourceRoot":"","sources":["../../src/clients/RTorrent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TorrentClient.js","sourceRoot":"","sources":["../../src/clients/TorrentClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,IAAI,YAA2B,CAAC;AAoBhC,SAAS,yBAAyB;IACjC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,GACzE,gBAAgB,EAAE,CAAC;IACpB,IAAI,cAAc,EAAE,CAAC;QACpB,YAAY,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC3B,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC;IAC7B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,SAAS;IACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,yBAAyB,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"TorrentClient.js","sourceRoot":"","sources":["../../src/clients/TorrentClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,IAAI,YAA2B,CAAC;AAsBhC,SAAS,yBAAyB;IACjC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,GACzE,gBAAgB,EAAE,CAAC;IACpB,IAAI,cAAc,EAAE,CAAC;QACpB,YAAY,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC3B,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC;IAC7B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,SAAS;IACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,yBAAyB,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { InjectionResult, TORRENT_TAG } from "../constants.js";
1
+ import { InjectionResult, TORRENT_TAG, } from "../constants.js";
2
2
  import { CrossSeedError } from "../errors.js";
3
3
  import { Label, logger } from "../logger.js";
4
4
  import { resultOf, resultOfErr } from "../Result.js";
@@ -43,7 +43,7 @@ export default class Transmission {
43
43
  }
44
44
  }
45
45
  catch (e) {
46
- if (e instanceof TypeError) {
46
+ if (e instanceof SyntaxError) {
47
47
  logger.error({
48
48
  label: Label.TRANSMISSION,
49
49
  message: `Transmission returned non-JSON response`,
@@ -72,12 +72,12 @@ export default class Transmission {
72
72
  throw new CrossSeedError(`Failed to reach Transmission at ${transmissionRpcUrl}`);
73
73
  }
74
74
  }
75
- async checkOriginalTorrent(searchee) {
75
+ async checkOriginalTorrent(data, onlyCompleted) {
76
76
  let queryResponse;
77
77
  try {
78
78
  queryResponse = await this.request("torrent-get", {
79
79
  fields: ["downloadDir", "percentDone"],
80
- ids: [searchee.infoHash],
80
+ ids: [data.infoHash],
81
81
  });
82
82
  }
83
83
  catch (e) {
@@ -87,29 +87,49 @@ export default class Transmission {
87
87
  return resultOfErr(InjectionResult.FAILURE);
88
88
  }
89
89
  const [{ downloadDir, percentDone }] = queryResponse.torrents;
90
- if (percentDone < 1) {
90
+ if (onlyCompleted && percentDone < 1) {
91
91
  return resultOfErr(InjectionResult.TORRENT_NOT_COMPLETE);
92
92
  }
93
93
  return resultOf({ downloadDir });
94
94
  }
95
- async getDownloadDir(searchee) {
96
- const result = await this.checkOriginalTorrent(searchee);
95
+ async getDownloadDir(meta, options) {
96
+ const result = await this.checkOriginalTorrent(meta, options.onlyCompleted);
97
97
  return result
98
98
  .mapOk((r) => r.downloadDir)
99
99
  .mapErr((err) => (err === "FAILURE" ? "UNKNOWN_ERROR" : err));
100
100
  }
101
+ async isTorrentComplete(infoHash) {
102
+ const queryResponse = await this.request("torrent-get", {
103
+ fields: ["percentDone"],
104
+ ids: [infoHash],
105
+ });
106
+ if (queryResponse.torrents.length === 0) {
107
+ return resultOfErr("NOT_FOUND");
108
+ }
109
+ const [{ percentDone }] = queryResponse.torrents;
110
+ return resultOf(percentDone === 1);
111
+ }
112
+ async recheckTorrent(infoHash) {
113
+ // Pause first as it may resume after recheck automatically
114
+ await this.request("torrent-stop", {
115
+ ids: [infoHash],
116
+ });
117
+ await this.request("torrent-verify", {
118
+ ids: [infoHash],
119
+ });
120
+ }
101
121
  async inject(newTorrent, searchee, decision, path) {
102
122
  let downloadDir;
103
123
  if (path) {
104
124
  downloadDir = path;
105
125
  }
106
126
  else {
107
- const result = await this.getDownloadDir(searchee);
127
+ const result = await this.getDownloadDir(searchee, { onlyCompleted: true });
108
128
  if (result.isErr()) {
109
129
  return InjectionResult.FAILURE;
110
130
  }
111
131
  else {
112
- downloadDir = result.unwrapOrThrow();
132
+ downloadDir = result.unwrap();
113
133
  }
114
134
  }
115
135
  let addResponse;
@@ -117,7 +137,7 @@ export default class Transmission {
117
137
  addResponse = await this.request("torrent-add", {
118
138
  "download-dir": downloadDir,
119
139
  metainfo: newTorrent.encode().toString("base64"),
120
- paused: shouldRecheck(decision),
140
+ paused: shouldRecheck(searchee, decision),
121
141
  labels: [TORRENT_TAG],
122
142
  });
123
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transmission.js","sourceRoot":"","sources":["../../src/clients/Transmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAU,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAsB3D,SAAS,gBAAgB,CACxB,IAAwB;IAExB,OAAO,mBAAmB,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,sBAAsB,CAAS;IAEvB,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAgB,EAAE,EAClB,OAAO,GAAG,CAAC;QAEX,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAElD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,yBAAyB,CAC7D,kBAAkB,CAClB,CAAC,aAAa,CACd,IAAI,cAAc,CAAC,8CAA8C,CAAC,CAClE,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClE,QAAQ,CACR,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACjD,OAAO;SACP,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CACjD,sBAAsB,CACrB,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAC;YAC5D,IACC,YAAY,CAAC,MAAM,KAAK,SAAS;gBACjC,YAAY,CAAC,MAAM,KAAK,mBAAmB,CAAC,wCAAwC;cACnF,CAAC;gBACF,OAAO,YAAY,CAAC,SAAS,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACd,uCAAuC,YAAY,CAAC,MAAM,GAAG,CAC7D,CAAC;YACH,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,yCAAyC;iBAClD,CAAC,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,QAAQ;iBACjB,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,sCAAsC;iBAC/C,CAAC,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;YAClD,MAAM,IAAI,cAAc,CACvB,mCAAmC,kBAAkB,EAAE,CACvD,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,QAA8B;QAO9B,IAAI,aAAqC,CAAC;QAC1C,IAAI,CAAC;YACJ,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,aAAa,EACb;gBACC,MAAM,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;gBACtC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACxB,CACD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC;QAE9D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,QAAkB;QAIlB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC7C,QAAgC,CAChC,CAAC;QACF,OAAO,MAAM;aACX,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CACX,UAAoB,EACpB,QAAkB,EAClB,QAGyB,EACzB,IAAa;QAEb,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,EAAE,CAAC;YACV,WAAW,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACvC,QAAgC,CAChC,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,eAAe,CAAC,OAAO,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACtC,CAAC;QACF,CAAC;QAED,IAAI,WAA+B,CAAC;QAEpC,IAAI,CAAC;YACJ,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,aAAa,EACb;gBACC,cAAc,EAAE,WAAW;gBAC3B,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAChD,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC;gBAC/B,MAAM,EAAE,CAAC,WAAW,CAAC;aACrB,CACD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,eAAe,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,OAAO,eAAe,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,OAAO,eAAe,CAAC,OAAO,CAAC;IAChC,CAAC;CACD"}
1
+ {"version":3,"file":"Transmission.js","sourceRoot":"","sources":["../../src/clients/Transmission.ts"],"names":[],"mappings":"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"}