cross-seed 6.11.1 → 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.
Files changed (51) hide show
  1. package/dist/action.js +344 -224
  2. package/dist/action.js.map +1 -1
  3. package/dist/clients/Deluge.js +100 -55
  4. package/dist/clients/Deluge.js.map +1 -1
  5. package/dist/clients/QBittorrent.js +147 -50
  6. package/dist/clients/QBittorrent.js.map +1 -1
  7. package/dist/clients/RTorrent.js +93 -71
  8. package/dist/clients/RTorrent.js.map +1 -1
  9. package/dist/clients/TorrentClient.js +60 -28
  10. package/dist/clients/TorrentClient.js.map +1 -1
  11. package/dist/clients/Transmission.js +67 -33
  12. package/dist/clients/Transmission.js.map +1 -1
  13. package/dist/cmd.js +10 -13
  14. package/dist/cmd.js.map +1 -1
  15. package/dist/config.template.cjs +50 -90
  16. package/dist/config.template.cjs.map +1 -1
  17. package/dist/configSchema.js +117 -33
  18. package/dist/configSchema.js.map +1 -1
  19. package/dist/configuration.js.map +1 -1
  20. package/dist/constants.js +2 -1
  21. package/dist/constants.js.map +1 -1
  22. package/dist/dataFiles.js +14 -11
  23. package/dist/dataFiles.js.map +1 -1
  24. package/dist/db.js +10 -7
  25. package/dist/db.js.map +1 -1
  26. package/dist/decide.js +13 -16
  27. package/dist/decide.js.map +1 -1
  28. package/dist/diff.js +5 -26
  29. package/dist/diff.js.map +1 -1
  30. package/dist/inject.js +99 -98
  31. package/dist/inject.js.map +1 -1
  32. package/dist/logger.js +26 -15
  33. package/dist/logger.js.map +1 -1
  34. package/dist/pipeline.js +127 -75
  35. package/dist/pipeline.js.map +1 -1
  36. package/dist/preFilter.js +2 -35
  37. package/dist/preFilter.js.map +1 -1
  38. package/dist/pushNotifier.js +3 -0
  39. package/dist/pushNotifier.js.map +1 -1
  40. package/dist/runtimeConfig.js.map +1 -1
  41. package/dist/searchee.js +136 -91
  42. package/dist/searchee.js.map +1 -1
  43. package/dist/startup.js +3 -2
  44. package/dist/startup.js.map +1 -1
  45. package/dist/torrent.js +132 -98
  46. package/dist/torrent.js.map +1 -1
  47. package/dist/torznab.js +5 -5
  48. package/dist/torznab.js.map +1 -1
  49. package/dist/utils.js +26 -6
  50. package/dist/utils.js.map +1 -1
  51. package/package.json +1 -1
@@ -13,40 +13,69 @@ import QBittorrent from "./QBittorrent.js";
13
13
  import RTorrent from "./RTorrent.js";
14
14
  import Transmission from "./Transmission.js";
15
15
  import { hasExt } from "../utils.js";
16
- let activeClient = null;
17
- function instantiateDownloadClient() {
18
- const { rtorrentRpcUrl, qbittorrentUrl, transmissionRpcUrl, delugeRpcUrl } = getRuntimeConfig();
19
- if (rtorrentRpcUrl) {
20
- activeClient = new RTorrent();
21
- }
22
- else if (qbittorrentUrl) {
23
- activeClient = new QBittorrent();
24
- }
25
- else if (transmissionRpcUrl) {
26
- activeClient = new Transmission();
27
- }
28
- else if (delugeRpcUrl) {
29
- activeClient = new Deluge();
30
- }
16
+ const activeClients = [];
17
+ const PARSE_CLIENT_REGEX = /^(?<clientType>.+?):(?:(?<readonly>readonly):)?(?<url>.*)$/;
18
+ export function parseClientEntry(clientEntry) {
19
+ const match = clientEntry.match(PARSE_CLIENT_REGEX);
20
+ if (!match?.groups)
21
+ return null;
22
+ return {
23
+ clientType: match.groups.clientType,
24
+ readonly: isTruthy(match.groups.readonly),
25
+ url: match.groups.url,
26
+ };
31
27
  }
32
- export function getClient() {
33
- if (!activeClient) {
34
- instantiateDownloadClient();
28
+ export function instantiateDownloadClients() {
29
+ const { torrentClients } = getRuntimeConfig();
30
+ for (const [priority, clientEntryRaw] of torrentClients.entries()) {
31
+ const { clientType, readonly, url } = parseClientEntry(clientEntryRaw);
32
+ switch (clientType) {
33
+ case Label.QBITTORRENT:
34
+ activeClients.push(new QBittorrent(url, priority, readonly));
35
+ break;
36
+ case Label.RTORRENT:
37
+ activeClients.push(new RTorrent(url, priority, readonly));
38
+ break;
39
+ case Label.TRANSMISSION:
40
+ activeClients.push(new Transmission(url, priority, readonly));
41
+ break;
42
+ case Label.DELUGE:
43
+ activeClients.push(new Deluge(url, priority, readonly));
44
+ break;
45
+ default:
46
+ throw new Error(`Invalid client type: ${clientType}`);
47
+ }
35
48
  }
36
- return activeClient;
37
49
  }
38
- export async function validateClientSavePaths(searchees, infoHashPathMapOrig) {
50
+ export function getClients() {
51
+ return activeClients;
52
+ }
53
+ export function byClientHostPriority(clientHost) {
54
+ const clients = getClients();
55
+ return (clients.find((c) => c.clientHost === clientHost)?.clientPriority ??
56
+ clients.length);
57
+ }
58
+ export async function validateClientSavePaths(searchees, infoHashPathMapOrig, label) {
39
59
  const { linkDirs } = getRuntimeConfig();
40
- logger.info(`Validating all existing torrent save paths...`);
60
+ logger.info({
61
+ label,
62
+ message: `Validating all existing torrent save paths...`,
63
+ });
41
64
  const infoHashPathMap = new Map(infoHashPathMapOrig);
42
65
  const entryDir = searchees.find((s) => !infoHashPathMap.has(s.infoHash));
43
66
  if (entryDir) {
44
- logger.warn(`Not all torrents from torrentDir are in the torrent client (missing ${entryDir.name} [${entryDir.infoHash}]): https://www.cross-seed.org/docs/basics/options#torrentdir`);
67
+ logger.warn({
68
+ label,
69
+ message: `Not all torrents from torrentDir are in the torrent client (missing ${entryDir.name} [${entryDir.infoHash}]): https://www.cross-seed.org/docs/basics/options#torrentdir`,
70
+ });
45
71
  }
46
72
  const searcheeInfoHashes = new Set(searchees.map((s) => s.infoHash));
47
73
  const entryClient = Array.from(infoHashPathMap.keys()).find((infoHash) => !searcheeInfoHashes.has(infoHash));
48
74
  if (entryClient) {
49
- logger.warn(`Could not ensure all torrents from the torrent client are in torrentDir (missing ${entryClient} with savePath ${infoHashPathMap.get(entryClient)}): https://www.cross-seed.org/docs/basics/options#torrentdir`);
75
+ logger.warn({
76
+ label,
77
+ message: `Could not ensure all torrents from the torrent client are in torrentDir (missing ${entryClient} with savePath ${infoHashPathMap.get(entryClient)}): https://www.cross-seed.org/docs/basics/options#torrentdir`,
78
+ });
50
79
  }
51
80
  if (!linkDirs.length)
52
81
  return;
@@ -61,27 +90,30 @@ export async function validateClientSavePaths(searchees, infoHashPathMapOrig) {
61
90
  }
62
91
  const uniqueSavePaths = new Set(infoHashPathMap.values());
63
92
  const ignoredSavePaths = Array.from(removedSavePaths).filter((savePath) => !uniqueSavePaths.has(savePath));
64
- logger.verbose(`Excluded save paths from linking test due to filters: ${formatAsList(ignoredSavePaths, { sort: true, type: "unit" })}`);
93
+ logger.verbose({
94
+ label,
95
+ message: `Excluded save paths from linking test due to filters: ${formatAsList(ignoredSavePaths, { sort: true, type: "unit" })}`,
96
+ });
65
97
  for (const savePath of uniqueSavePaths) {
66
98
  if (ABS_WIN_PATH_REGEX.test(savePath) === (path.sep === "/")) {
67
- throw new CrossSeedError(`Cannot use linkDirs with cross platform cross-seed and torrent client, please run cross-seed in docker or natively to match your torrent client (https://www.cross-seed.org/docs/basics/managing-the-daemon): ${savePath}`);
99
+ throw new CrossSeedError(`Cannot use linkDirs with cross platform cross-seed and ${label}, please run cross-seed in docker or natively to match your torrent client (https://www.cross-seed.org/docs/basics/managing-the-daemon): ${savePath}`);
68
100
  }
69
101
  try {
70
102
  testLinking(savePath);
71
103
  }
72
104
  catch (e) {
73
105
  logger.error(e);
74
- throw new CrossSeedError("Failed to link from torrent client save paths to a linkDir. If you have a temp/cache drive, you will need to add extra linkDirs or blocklist the category, tag, or trackers that correspond to it (https://www.cross-seed.org/docs/tutorials/linking#setting-up-linking)");
106
+ throw new CrossSeedError(`Failed to link from ${label} save paths to a linkDir. If you have multiple drives, you will need to add extra linkDirs or blocklist the category, tag, or trackers that correspond to the drives (https://www.cross-seed.org/docs/tutorials/linking#setting-up-linking)`);
75
107
  }
76
108
  }
77
109
  }
78
110
  export function organizeTrackers(trackers) {
79
111
  return trackers.map((t) => sanitizeTrackerUrl(t.url)).filter(isTruthy);
80
112
  }
81
- export async function waitForTorrentToComplete(infoHash, options = { retries: 6 }) {
113
+ export async function waitForTorrentToComplete(client, infoHash, options = { retries: 6 }) {
82
114
  const retries = Math.max(options.retries, 0);
83
115
  for (let i = 0; i <= retries; i++) {
84
- if ((await getClient().isTorrentComplete(infoHash)).orElse(false)) {
116
+ if ((await client.isTorrentComplete(infoHash)).orElse(false)) {
85
117
  return true;
86
118
  }
87
119
  if (i < retries) {
@@ -1 +1 @@
1
- {"version":3,"file":"TorrentClient.js","sourceRoot":"","sources":["../../src/clients/TorrentClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TorrentClient.js","sourceRoot":"","sources":["../../src/clients/TorrentClient.ts"],"names":[],"mappings":"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"}
@@ -10,16 +10,31 @@ 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
12
  import { extractCredentialsFromUrl, humanReadableSize, sanitizeInfoHash, wait, } from "../utils.js";
13
+ import { inspect } from "util";
13
14
  const XTransmissionSessionId = "X-Transmission-Session-Id";
14
15
  function doesAlreadyExist(args) {
15
16
  return "torrent-duplicate" in args;
16
17
  }
17
18
  export default class Transmission {
18
19
  xTransmissionSessionId;
19
- type = Label.TRANSMISSION;
20
+ url;
21
+ clientHost;
22
+ clientPriority;
23
+ clientType = Label.TRANSMISSION;
24
+ readonly;
25
+ label;
26
+ constructor(url, priority, readonly) {
27
+ this.url = url;
28
+ this.clientHost = new URL(url).host;
29
+ this.clientPriority = priority;
30
+ this.readonly = readonly;
31
+ this.label = `${this.clientType}@${this.clientHost}`;
32
+ }
20
33
  async request(method, args = {}, retries = 1, timeout = 0) {
21
- const { transmissionRpcUrl } = getRuntimeConfig();
22
- const { username, password, href } = extractCredentialsFromUrl(transmissionRpcUrl).unwrapOrThrow(new CrossSeedError("Transmission rpc url must be percent-encoded"));
34
+ const msg = `Calling method ${method} with params ${inspect(args, { depth: null, compact: true })}`;
35
+ const message = msg.length > 1000 ? `${msg.slice(0, 1000)}...` : msg;
36
+ logger.verbose({ label: this.label, message });
37
+ const { username, password, href } = extractCredentialsFromUrl(this.url).unwrapOrThrow(new CrossSeedError(`[${this.label}] Transmission rpc url must be percent-encoded`));
23
38
  const headers = new Headers();
24
39
  headers.set("Content-Type", "application/json");
25
40
  if (this.xTransmissionSessionId) {
@@ -54,17 +69,17 @@ export default class Transmission {
54
69
  catch (e) {
55
70
  if (e instanceof SyntaxError) {
56
71
  logger.error({
57
- label: Label.TRANSMISSION,
72
+ label: this.label,
58
73
  message: `Transmission returned non-JSON response`,
59
74
  });
60
75
  logger.debug({
61
- label: Label.TRANSMISSION,
76
+ label: this.label,
62
77
  message: response.clone().text(),
63
78
  });
64
79
  }
65
80
  else {
66
81
  logger.error({
67
- label: Label.TRANSMISSION,
82
+ label: this.label,
68
83
  message: `Transmission responded with an error: ${e.message}`,
69
84
  });
70
85
  logger.debug(e);
@@ -78,13 +93,16 @@ export default class Transmission {
78
93
  await this.request("session-get", {}, 1, ms("10 seconds"));
79
94
  }
80
95
  catch (e) {
81
- const { transmissionRpcUrl } = getRuntimeConfig();
82
- throw new CrossSeedError(`Failed to reach Transmission at ${transmissionRpcUrl}: ${e.message}`);
96
+ throw new CrossSeedError(`[${this.label}] Failed to reach Transmission at ${this.clientHost}: ${e.message}`);
83
97
  }
98
+ logger.info({
99
+ label: this.label,
100
+ message: `Logged in successfully${this.readonly ? " (readonly)" : ""}`,
101
+ });
84
102
  if (!torrentDir)
85
103
  return;
86
104
  if (!readdirSync(torrentDir).some((f) => f.endsWith(".torrent"))) {
87
- throw new CrossSeedError("Invalid torrentDir, if no torrents are in client set to null for now: https://www.cross-seed.org/docs/basics/options#torrentdir");
105
+ 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`);
88
106
  }
89
107
  }
90
108
  async checkOriginalTorrent(data, onlyCompleted) {
@@ -136,13 +154,23 @@ export default class Transmission {
136
154
  const [{ percentDone }] = queryResponse.torrents;
137
155
  return resultOf(percentDone === 1);
138
156
  }
157
+ async isTorrentChecking(infoHash) {
158
+ const queryResponse = await this.request("torrent-get", {
159
+ fields: ["status"],
160
+ ids: [infoHash],
161
+ });
162
+ if (queryResponse.torrents.length === 0) {
163
+ return resultOfErr("NOT_FOUND");
164
+ }
165
+ const [{ status }] = queryResponse.torrents;
166
+ return resultOf([1, 2].includes(status));
167
+ }
139
168
  async getAllTorrents() {
140
169
  const res = await this.request("torrent-get", {
141
170
  fields: ["hashString", "labels"],
142
171
  });
143
172
  return res.torrents.map((torrent) => ({
144
173
  infoHash: torrent.hashString,
145
- category: "",
146
174
  tags: torrent.labels,
147
175
  }));
148
176
  }
@@ -166,7 +194,7 @@ export default class Transmission {
166
194
  }
167
195
  catch (e) {
168
196
  logger.error({
169
- label: Label.TRANSMISSION,
197
+ label: this.label,
170
198
  message: `Failed to get torrents from client: ${e.message}`,
171
199
  });
172
200
  logger.debug(e);
@@ -174,7 +202,7 @@ export default class Transmission {
174
202
  }
175
203
  if (!torrents.length) {
176
204
  logger.error({
177
- label: Label.TRANSMISSION,
205
+ label: this.label,
178
206
  message: "No torrents found in client",
179
207
  });
180
208
  return { searchees, newSearchees };
@@ -184,6 +212,7 @@ export default class Transmission {
184
212
  infoHashes.add(infoHash);
185
213
  const dbTorrent = await memDB("torrent")
186
214
  .where("info_hash", infoHash)
215
+ .where("client_host", this.clientHost)
187
216
  .first();
188
217
  const refresh = options?.refresh === undefined
189
218
  ? false
@@ -203,7 +232,7 @@ export default class Transmission {
203
232
  }));
204
233
  if (!files.length) {
205
234
  logger.verbose({
206
- label: Label.TRANSMISSION,
235
+ label: this.label,
207
236
  message: `No files found for ${torrent.name} [${sanitizeInfoHash(infoHash)}]: skipping`,
208
237
  });
209
238
  continue;
@@ -216,7 +245,6 @@ export default class Transmission {
216
245
  const title = parseTitle(name, files) ?? name;
217
246
  const length = torrent.totalSize;
218
247
  const savePath = torrent.downloadDir;
219
- const category = "";
220
248
  const tags = torrent.labels;
221
249
  const searchee = {
222
250
  infoHash,
@@ -224,15 +252,15 @@ export default class Transmission {
224
252
  title,
225
253
  files,
226
254
  length,
255
+ clientHost: this.clientHost,
227
256
  savePath,
228
- category,
229
257
  tags,
230
258
  trackers,
231
259
  };
232
260
  newSearchees.push(searchee);
233
261
  searchees.push(searchee);
234
262
  }
235
- await updateSearcheeClientDB(newSearchees, infoHashes);
263
+ await updateSearcheeClientDB(this.clientHost, newSearchees, infoHashes);
236
264
  return { searchees, newSearchees };
237
265
  }
238
266
  async recheckTorrent(infoHash) {
@@ -271,20 +299,20 @@ export default class Transmission {
271
299
  const torrentLog = `${name} [${sanitizeInfoHash(infoHash)}]`;
272
300
  if (status !== 0) {
273
301
  logger.warn({
274
- label: Label.TRANSMISSION,
302
+ label: this.label,
275
303
  message: `Will not resume ${torrentLog}: status is ${status}`,
276
304
  });
277
305
  return;
278
306
  }
279
307
  if (leftUntilDone > maxRemainingBytes) {
280
308
  logger.warn({
281
- label: Label.TRANSMISSION,
309
+ label: this.label,
282
310
  message: `Will not resume ${torrentLog}: ${humanReadableSize(leftUntilDone, { binary: true })} remaining > ${humanReadableSize(maxRemainingBytes, { binary: true })}`,
283
311
  });
284
312
  return;
285
313
  }
286
314
  logger.info({
287
- label: Label.TRANSMISSION,
315
+ label: this.label,
288
316
  message: `Resuming ${torrentLog}: ${humanReadableSize(leftUntilDone, { binary: true })} remaining`,
289
317
  });
290
318
  await this.request("torrent-start", {
@@ -293,35 +321,41 @@ export default class Transmission {
293
321
  return;
294
322
  }
295
323
  logger.warn({
296
- label: Label.TRANSMISSION,
324
+ label: this.label,
297
325
  message: `Will not resume torrent ${infoHash}: timeout`,
298
326
  });
299
327
  }
300
- async inject(newTorrent, searchee, decision, path) {
301
- let downloadDir;
302
- if (path) {
303
- downloadDir = path;
328
+ async inject(newTorrent, searchee, decision, options) {
329
+ let destinationDir;
330
+ if (options.destinationDir) {
331
+ destinationDir = options.destinationDir;
304
332
  }
305
333
  else {
306
- const result = await this.getDownloadDir(searchee, { onlyCompleted: true });
307
- if (result.isErr()) {
308
- return InjectionResult.FAILURE;
334
+ const result = await this.getDownloadDir(searchee, { onlyCompleted: options.onlyCompleted });
335
+ if (result.isOk()) {
336
+ destinationDir = result.unwrap();
309
337
  }
310
338
  else {
311
- downloadDir = result.unwrap();
339
+ if (result.unwrapErr() === "TORRENT_NOT_COMPLETE") {
340
+ return InjectionResult.TORRENT_NOT_COMPLETE;
341
+ }
342
+ return InjectionResult.FAILURE;
312
343
  }
313
344
  }
314
345
  let addResponse;
315
346
  try {
347
+ const toRecheck = shouldRecheck(searchee, decision);
316
348
  addResponse = await this.request("torrent-add", {
317
- "download-dir": downloadDir,
349
+ "download-dir": destinationDir,
318
350
  metainfo: newTorrent.encode().toString("base64"),
319
- paused: shouldRecheck(searchee, decision),
351
+ paused: toRecheck,
320
352
  labels: [TORRENT_TAG],
321
353
  });
322
- this.resumeInjection(newTorrent.infoHash, decision, {
323
- checkOnce: false,
324
- });
354
+ if (toRecheck) {
355
+ this.resumeInjection(newTorrent.infoHash, decision, {
356
+ checkOnce: false,
357
+ });
358
+ }
325
359
  }
326
360
  catch (e) {
327
361
  return InjectionResult.FAILURE;
@@ -1 +1 @@
1
- {"version":3,"file":"Transmission.js","sourceRoot":"","sources":["../../src/clients/Transmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAEN,eAAe,EACf,WAAW,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,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;AACvD,OAAO,EACN,oBAAoB,EACpB,UAAU,EAIV,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEN,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,GACJ,MAAM,aAAa,CAAC;AAErB,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAuC3D,SAAS,gBAAgB,CACxB,IAAwB;IAExB,OAAO,mBAAmB,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,sBAAsB,CAAS;IACtB,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;IAE3B,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAgB,EAAE,EAClB,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;QAEX,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAElD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,yBAAyB,CAC7D,kBAAmB,CACnB,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,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,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;YACP,MAAM;SACN,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,KAAK,EAAE,CAAC,IAAI,EAAE,CAAgB,CAAC;YACpE,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,WAAW,EAAE,CAAC;gBAC9B,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,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;iBAChC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,yCAAyC,CAAC,CAAC,OAAO,EAAE;iBAC7D,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,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAC1C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;YAClD,MAAM,IAAI,cAAc,CACvB,mCAAmC,kBAAkB,KAAK,CAAC,CAAC,OAAO,EAAE,CACrE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,cAAc,CACvB,iIAAiI,CACjI,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,IAAqC,EACrC,aAAsB;QAOtB,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,IAAI,CAAC,QAAQ,CAAC;aACpB,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,aAAa,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACtC,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,IAAqC,EACrC,OAAmC;QAInC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC7C,IAAI,EACJ,OAAO,CAAC,aAAa,CACrB,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,kBAAkB,CAAC,OAExB;QACA,IAAI,QAAQ,GAAG,CACd,MAAM,IAAI,CAAC,OAAO,CAAyB,aAAa,EAAE;YACzD,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;SACpD,CAAC,CACF,CAAC,QAAQ,CAAC;QACX,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3D,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACZ,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACf,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,QAAgB;QAEhB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CACvC,aAAa,EACb;YACC,MAAM,EAAE,CAAC,aAAa,CAAC;YACvB,GAAG,EAAE,CAAC,QAAQ,CAAC;SACf,CACD,CAAC;QACF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC;QACjD,OAAO,QAAQ,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,aAAa,EAAE;YACrE,MAAM,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,OAAO,CAAC,MAAM;SACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAGxB;QACA,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,MAAM,YAAY,GAAqB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,IAAI,QAA4C,CAAC;QACjD,IAAI,CAAC;YACJ,QAAQ,GAAG,CACV,MAAM,IAAI,CAAC,OAAO,CAAyB,aAAa,EAAE;gBACzD,MAAM,EAAE;oBACP,YAAY;oBACZ,MAAM;oBACN,OAAO;oBACP,WAAW;oBACX,aAAa;oBACb,QAAQ;oBACR,UAAU;iBACV;aACD,CAAC,CACF,CAAC,QAAQ,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,OAAO,EAAE,uCAAuC,CAAC,CAAC,OAAO,EAAE;aAC3D,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,OAAO,EAAE,6BAA6B;aACtC,CAAC,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;iBACtC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;iBAC5B,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GACZ,OAAO,EAAE,OAAO,KAAK,SAAS;gBAC7B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBAC7B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;oBAChC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,SAAS;YACV,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC;oBACd,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,sBAAsB,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ,CAAC,aAAa;iBACvF,CAAC,CAAC;gBACH,SAAS;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,CAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG,EAAE,OAAO,CAAC,QAAQ;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;aAClB,CAAC,CAAC,CACH,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YACzB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5B,MAAM,QAAQ,GAAmB;gBAChC,QAAQ;gBACR,IAAI;gBACJ,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,IAAI;gBACJ,QAAQ;aACR,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,sBAAsB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACpC,2DAA2D;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAO,cAAc,EAAE;YACxC,GAAG,EAAE,CAAC,QAAQ,CAAC;SACf,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAO,gBAAgB,EAAE;YAC1C,GAAG,EAAE,CAAC,QAAQ,CAAC;SACf,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,QAAgB,EAChB,QAA0B,EAC1B,OAA+B;QAE/B,IAAI,SAAS,GAAG,eAAe,CAAC;QAChC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,IAAI;oBAAE,OAAO;gBACjB,IAAI,GAAG,IAAI,CAAC;YACb,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CACvC,aAAa,EACb;gBACC,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC;gBAC3C,GAAG,EAAE,CAAC,QAAQ,CAAC;aACf,CACD,CAAC;YACF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,SAAS,GAAG,kBAAkB,CAAC,CAAC,kCAAkC;gBAClE,SAAS;YACV,CAAC;YACD,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC;YACjE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACV,CAAC;YACD,MAAM,UAAU,GAAG,GAAG,IAAI,KAAK,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7D,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,mBAAmB,UAAU,eAAe,MAAM,EAAE;iBAC7D,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACD,IAAI,aAAa,GAAG,iBAAiB,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,OAAO,EAAE,mBAAmB,UAAU,KAAK,iBAAiB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,gBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;iBACrK,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,OAAO,EAAE,YAAY,UAAU,KAAK,iBAAiB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY;aAClG,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAO,eAAe,EAAE;gBACzC,GAAG,EAAE,CAAC,QAAQ,CAAC;aACf,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,OAAO,EAAE,2BAA2B,QAAQ,WAAW;SACvD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACX,UAAoB,EACpB,QAAkB,EAClB,QAA0B,EAC1B,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,EAChC,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,eAAe,CAAC,OAAO,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,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,EAAE,QAAQ,CAAC;gBACzC,MAAM,EAAE,CAAC,WAAW,CAAC;aACrB,CACD,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACnD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;QACJ,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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"}
package/dist/cmd.js CHANGED
@@ -13,7 +13,6 @@ import { injectSavedTorrents, restoreFromTorrentCache } from "./inject.js";
13
13
  import { jobsLoop } from "./jobs.js";
14
14
  import { bulkSearch, scanRssFeeds } from "./pipeline.js";
15
15
  import { sendTestNotification } from "./pushNotifier.js";
16
- import { createSearcheeFromMetafile } from "./searchee.js";
17
16
  import { serve } from "./server.js";
18
17
  import { withFullRuntime, withMinimalRuntime } from "./startup.js";
19
18
  import { indexTorrentsAndDataDirs, parseTorrentFromFilename, } from "./torrent.js";
@@ -75,10 +74,13 @@ function createCommandWithSharedOptions(name, description) {
75
74
  .addOption(new Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
76
75
  .default(fallback(fileConfig.action, Action.SAVE))
77
76
  .choices(Object.values(Action)))
78
- .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.rtorrentRpcUrl)
79
- .option("--qbittorrent-url <url>", "The url of your qBittorrent webui. Requires '-A inject'. See the docs for more information.", fileConfig.qbittorrentUrl)
80
- .option("--transmission-rpc-url <url>", "The url of your Transmission RPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.transmissionRpcUrl)
81
- .option("--deluge-rpc-url <url>", "The url of your Deluge JSON-RPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.delugeRpcUrl)
77
+ .option("--torrent-clients <clients...>", "The the client prefix, readonly status, and urls of your torrent clients.",
78
+ // @ts-expect-error commander supports non-string defaults
79
+ fallback(fileConfig.torrentClients, []))
80
+ .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface.", fileConfig.rtorrentRpcUrl)
81
+ .option("--qbittorrent-url <url>", "The url of your qBittorrent webui.", fileConfig.qbittorrentUrl)
82
+ .option("--transmission-rpc-url <url>", "The url of your Transmission RPC interface.", fileConfig.transmissionRpcUrl)
83
+ .option("--deluge-rpc-url <url>", "The url of your Deluge JSON-RPC interface.", fileConfig.delugeRpcUrl)
82
84
  .option("--duplicate-categories", "Create and inject using categories with the same save paths as your normal categories", fallback(fileConfig.duplicateCategories, false))
83
85
  .option("--notification-webhook-urls <urls...>", "cross-seed will send POST requests to these urls with a JSON payload of { title, body, extra }",
84
86
  // @ts-expect-error commander supports non-string defaults
@@ -104,7 +106,6 @@ program.version(PROGRAM_VERSION, "-V, --version", "output the current version");
104
106
  program
105
107
  .command("gen-config")
106
108
  .description("Generate a config file")
107
- .option("-d, --docker", "Generate the docker config instead of the normal one")
108
109
  .action(withMinimalRuntime(generateConfig));
109
110
  program
110
111
  .command("update-torrent-cache-trackers")
@@ -125,13 +126,9 @@ program
125
126
  .argument("torrent")
126
127
  .action(withMinimalRuntime(async (torrentPath) => {
127
128
  console.log("Use `cross-seed diff` to compare two .torrent files");
128
- const res = createSearcheeFromMetafile(await parseTorrentFromFilename(torrentPath));
129
- if (res.isErr())
130
- return console.log(res.unwrapErr());
131
- const searchee = res.unwrap();
132
- delete searchee.category;
133
- delete searchee.tags;
134
- console.log(searchee);
129
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
130
+ const { category, isSingleFileTorrent, raw, tags, ...meta } = await parseTorrentFromFilename(torrentPath);
131
+ console.log(meta);
135
132
  }, { migrate: false }));
136
133
  program
137
134
  .command("clear-indexer-failures")
package/dist/cmd.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}