cross-seed 6.8.9 → 6.9.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 (52) hide show
  1. package/dist/action.js +65 -38
  2. package/dist/action.js.map +1 -1
  3. package/dist/clients/Deluge.js +87 -7
  4. package/dist/clients/Deluge.js.map +1 -1
  5. package/dist/clients/QBittorrent.js +124 -10
  6. package/dist/clients/QBittorrent.js.map +1 -1
  7. package/dist/clients/RTorrent.js +200 -74
  8. package/dist/clients/RTorrent.js.map +1 -1
  9. package/dist/clients/TorrentClient.js +6 -2
  10. package/dist/clients/TorrentClient.js.map +1 -1
  11. package/dist/clients/Transmission.js +93 -7
  12. package/dist/clients/Transmission.js.map +1 -1
  13. package/dist/cmd.js +24 -19
  14. package/dist/cmd.js.map +1 -1
  15. package/dist/config.template.cjs +14 -8
  16. package/dist/config.template.cjs.map +1 -1
  17. package/dist/configSchema.js +50 -31
  18. package/dist/configSchema.js.map +1 -1
  19. package/dist/configuration.js.map +1 -1
  20. package/dist/constants.js +1 -0
  21. package/dist/constants.js.map +1 -1
  22. package/dist/dataFiles.js +50 -48
  23. package/dist/dataFiles.js.map +1 -1
  24. package/dist/db.js +12 -0
  25. package/dist/db.js.map +1 -1
  26. package/dist/decide.js +9 -9
  27. package/dist/decide.js.map +1 -1
  28. package/dist/inject.js +8 -5
  29. package/dist/inject.js.map +1 -1
  30. package/dist/parseTorrent.js +18 -16
  31. package/dist/parseTorrent.js.map +1 -1
  32. package/dist/pipeline.js +45 -41
  33. package/dist/pipeline.js.map +1 -1
  34. package/dist/preFilter.js +37 -9
  35. package/dist/preFilter.js.map +1 -1
  36. package/dist/pushNotifier.js +15 -21
  37. package/dist/pushNotifier.js.map +1 -1
  38. package/dist/runtimeConfig.js +5 -2
  39. package/dist/runtimeConfig.js.map +1 -1
  40. package/dist/searchee.js +54 -9
  41. package/dist/searchee.js.map +1 -1
  42. package/dist/server.js +67 -47
  43. package/dist/server.js.map +1 -1
  44. package/dist/startup.js +34 -13
  45. package/dist/startup.js.map +1 -1
  46. package/dist/torrent.js +144 -119
  47. package/dist/torrent.js.map +1 -1
  48. package/dist/torznab.js +6 -6
  49. package/dist/torznab.js.map +1 -1
  50. package/dist/utils.js +55 -0
  51. package/dist/utils.js.map +1 -1
  52. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { existsSync } from "fs";
3
3
  import http from "http";
4
- import { pick } from "lodash-es";
5
4
  import { parse as qsParse } from "querystring";
6
5
  import { inspect } from "util";
7
6
  import { z } from "zod";
@@ -32,10 +31,28 @@ const WEBHOOK_SCHEMA = z
32
31
  .object({
33
32
  infoHash: z.string().length(40),
34
33
  path: z.string().refine((path) => path && existsSync(path)),
34
+ ignoreCrossSeeds: z
35
+ .boolean()
36
+ .or(z.string().transform((v) => v === "true")),
37
+ ignoreExcludeRecentSearch: z
38
+ .boolean()
39
+ .or(z.string().transform((v) => v === "true")),
40
+ ignoreExcludeOlder: z
41
+ .boolean()
42
+ .or(z.string().transform((v) => v === "true")),
43
+ ignoreBlockList: z
44
+ .boolean()
45
+ .or(z.string().transform((v) => v === "true")),
46
+ includeSingleEpisodes: z
47
+ .boolean()
48
+ .or(z.string().transform((v) => v === "true")),
49
+ includeNonVideos: z
50
+ .boolean()
51
+ .or(z.string().transform((v) => v === "true")),
35
52
  })
36
53
  .strict()
37
54
  .partial()
38
- .refine((data) => Object.keys(data).length === 1);
55
+ .refine((data) => !data.infoHash !== !data.path);
39
56
  function getData(req) {
40
57
  return new Promise((resolve) => {
41
58
  const chunks = [];
@@ -69,11 +86,11 @@ function parseData(data) {
69
86
  }
70
87
  return parsed;
71
88
  }
89
+ /**
90
+ * Checks all http API requests for authorized apiKey
91
+ * uses param `?apikey=` or as header `x-api-key`
92
+ */
72
93
  async function authorize(req, res) {
73
- /**
74
- * checks all http API requests for authorized apiKey
75
- * uses param `?apikey=` or as header `x-api-key`
76
- */
77
94
  const url = new URL(req.url, `http://${req.headers.host}`);
78
95
  const apiKey = req.headers["x-api-key"] ?? url.searchParams.get("apikey");
79
96
  const isAuthorized = await checkApiKey(apiKey);
@@ -89,11 +106,11 @@ async function authorize(req, res) {
89
106
  }
90
107
  return isAuthorized;
91
108
  }
109
+ /**
110
+ * Trigger a search for a torrent
111
+ */
92
112
  async function search(req, res) {
93
- /**
94
- * processes matching a local searchee provided via /api/webhook
95
- * on all currently configured torznab indexers
96
- */
113
+ await indexTorrentsAndDataDirs();
97
114
  const dataStr = await getData(req);
98
115
  let data;
99
116
  try {
@@ -108,39 +125,43 @@ async function search(req, res) {
108
125
  res.end(e.message);
109
126
  return;
110
127
  }
111
- let criteria = pick(data, ["infoHash", "path"]);
112
128
  try {
113
- criteria = WEBHOOK_SCHEMA.parse(criteria);
129
+ data = WEBHOOK_SCHEMA.parse(data);
114
130
  }
115
131
  catch {
116
- const message = `A valid infoHash or an accessible path must be provided (infoHash is recommended: see https://www.cross-seed.org/docs/reference/api): ${inspect(criteria)}`;
132
+ const message = `A valid infoHash or an accessible path must be provided (infoHash is recommended: see https://www.cross-seed.org/docs/reference/api): ${inspect(data)}`;
117
133
  logger.error({ label: Label.WEBHOOK, message });
118
134
  res.writeHead(400);
119
135
  res.end(message);
120
136
  return;
121
137
  }
122
- const criteriaStr = criteria.infoHash
123
- ? inspect(criteria).replace(criteria.infoHash, sanitizeInfoHash(criteria.infoHash))
124
- : inspect(criteria);
125
138
  res.writeHead(204);
126
139
  res.end();
140
+ const criteriaStr = data.infoHash
141
+ ? inspect(data).replace(data.infoHash, sanitizeInfoHash(data.infoHash))
142
+ : inspect(data);
127
143
  logger.info({
128
144
  label: Label.WEBHOOK,
129
145
  message: `Received search request: ${criteriaStr}`,
130
146
  });
131
- await indexTorrentsAndDataDirs();
147
+ const configOverride = {
148
+ includeSingleEpisodes: data.includeSingleEpisodes,
149
+ includeNonVideos: data.includeNonVideos,
150
+ excludeRecentSearch: data.ignoreExcludeRecentSearch ? 1 : undefined,
151
+ excludeOlder: data.ignoreExcludeOlder
152
+ ? Number.MAX_SAFE_INTEGER
153
+ : undefined,
154
+ blockList: data.ignoreBlockList ? [] : undefined,
155
+ };
132
156
  try {
133
157
  let numFound = null;
134
- if (criteria) {
135
- numFound = await searchForLocalTorrentByCriteria(criteria);
136
- }
137
- if (numFound === null) {
138
- logger.info({
139
- label: Label.WEBHOOK,
140
- message: `Did not search for ${criteriaStr} (check verbose logs for preFilter reason)`,
158
+ if (data) {
159
+ numFound = await searchForLocalTorrentByCriteria(data, {
160
+ configOverride,
161
+ ignoreCrossSeeds: data.ignoreCrossSeeds ?? true,
141
162
  });
142
163
  }
143
- else {
164
+ if (numFound !== null) {
144
165
  logger.info({
145
166
  label: Label.WEBHOOK,
146
167
  message: `Found ${numFound} torrents for ${criteriaStr}`,
@@ -182,12 +203,12 @@ function determineResponse(result) {
182
203
  }
183
204
  return { status, state };
184
205
  }
206
+ /**
207
+ * Reverse lookup for a torrent
208
+ */
185
209
  async function announce(req, res) {
186
- const { dataDirs, torrentDir } = getRuntimeConfig();
187
- /**
188
- * processes matching a new candidate provided via /api/announce
189
- * to local torrent based on provided criteria
190
- */
210
+ const { dataDirs, torrentDir, useClientTorrents } = getRuntimeConfig();
211
+ await indexTorrentsAndDataDirs();
191
212
  const dataStr = await getData(req);
192
213
  let data;
193
214
  try {
@@ -219,10 +240,9 @@ async function announce(req, res) {
219
240
  const candidate = data;
220
241
  const candidateLog = `${chalk.bold.white(candidate.name)} from ${candidate.tracker}`;
221
242
  try {
222
- if (!torrentDir && !dataDirs?.length) {
223
- throw new Error(`Announce requires at least one of torrentDir (recommended) or dataDirs to be set`);
243
+ if (!useClientTorrents && !torrentDir && !dataDirs.length) {
244
+ throw new Error(`Announce requires at least one of useClientTorrents, torrentDir, or dataDirs to be set`);
224
245
  }
225
- await indexTorrentsAndDataDirs();
226
246
  const result = await checkNewCandidateMatch(candidate, Label.ANNOUNCE);
227
247
  if (!result.decision) {
228
248
  res.writeHead(204);
@@ -247,26 +267,26 @@ async function announce(req, res) {
247
267
  res.end(e.message);
248
268
  }
249
269
  }
270
+ /**
271
+ * current: sends "200 OK"
272
+ * future: respond with current state and job status details via API
273
+ * uses: potential usage of this in dashbrr
274
+ */
250
275
  async function status(req, res) {
251
- /**
252
- current: sends "200 OK"
253
- future: respond with current state and job status details via API
254
- uses: potential usage of this in dashbrr
255
- */
256
276
  res.writeHead(200);
257
277
  res.end("OK");
258
278
  }
279
+ /**
280
+ * cross-seed health check
281
+ */
259
282
  async function ping(req, res) {
260
- /**
261
- * sends "200 OK" for external health check via API
262
- */
263
283
  res.writeHead(200);
264
284
  res.end("OK");
265
285
  }
286
+ /**
287
+ * Request router
288
+ */
266
289
  async function handleRequest(req, res) {
267
- /**
268
- * request handling upon receiving an http API call
269
- */
270
290
  const checkMethod = (method, endpoint) => {
271
291
  if (req.method === method)
272
292
  return true;
@@ -307,10 +327,10 @@ async function handleRequest(req, res) {
307
327
  }
308
328
  }
309
329
  }
330
+ /**
331
+ * Listens (daemon) on configured port for http API calls
332
+ */
310
333
  export function serve(port, host) {
311
- /**
312
- * listens (daemon) on configured port for http API calls
313
- */
314
334
  if (port) {
315
335
  const server = http.createServer(handleRequest);
316
336
  server.listen(port, host);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/startup.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { existsSync, mkdirSync } from "fs";
2
2
  import { access, constants, stat } from "fs/promises";
3
+ import ms from "ms";
3
4
  import { sep } from "path";
4
5
  import { inspect } from "util";
5
6
  import { testLinking } from "./action.js";
@@ -9,6 +10,7 @@ import { CrossSeedError } from "./errors.js";
9
10
  import { Label, logger } from "./logger.js";
10
11
  import { getRuntimeConfig } from "./runtimeConfig.js";
11
12
  import { validateTorznabUrls } from "./torznab.js";
13
+ import { wait } from "./utils.js";
12
14
  /**
13
15
  * validates existence, permission, and that a path is a directory
14
16
  * @param path string of path to validate
@@ -62,11 +64,9 @@ async function checkConfigPaths() {
62
64
  pathFailure++;
63
65
  }
64
66
  }
65
- if (dataDirs) {
66
- for (const dataDir of dataDirs) {
67
- if (!(await verifyPath(dataDir, "dataDirs", READ_ONLY))) {
68
- pathFailure++;
69
- }
67
+ for (const dataDir of dataDirs) {
68
+ if (!(await verifyPath(dataDir, "dataDirs", READ_ONLY))) {
69
+ pathFailure++;
70
70
  }
71
71
  }
72
72
  if (injectDir) {
@@ -78,7 +78,7 @@ async function checkConfigPaths() {
78
78
  pathFailure++;
79
79
  }
80
80
  }
81
- if (linkDirs.length && dataDirs) {
81
+ if (linkDirs.length) {
82
82
  for (const dataDir of dataDirs) {
83
83
  try {
84
84
  testLinking(dataDir);
@@ -94,14 +94,35 @@ async function checkConfigPaths() {
94
94
  throw new CrossSeedError(`\tYour configuration is invalid, please see the ${pathFailure > 1 ? "errors" : "error"} above for details.`);
95
95
  }
96
96
  }
97
+ async function retry(cb, retries, delayMs) {
98
+ let lastError = new Error("Retry failed");
99
+ for (let i = 0; i <= retries; i++) {
100
+ try {
101
+ return await cb();
102
+ }
103
+ catch (e) {
104
+ const retryMsg = i < retries ? `, retrying in ${delayMs / 1000} seconds` : "";
105
+ logger.error(`Attempt ${i + 1}/${retries + 1} failed${retryMsg}: ${e.message}`);
106
+ logger.debug(e);
107
+ lastError = e;
108
+ if (i >= retries)
109
+ break;
110
+ await wait(delayMs);
111
+ }
112
+ }
113
+ throw lastError;
114
+ }
97
115
  export async function doStartupValidation() {
98
- const downloadClient = getClient();
99
- await Promise.all([
100
- checkConfigPaths(),
101
- validateTorznabUrls(),
102
- validateUArrLs(),
103
- downloadClient?.validateConfig(),
104
- ]);
116
+ await checkConfigPaths(); // ensure paths are valid first
117
+ const validateClientConfig = async () => getClient()?.validateConfig(); // preserve `this` class pointer
118
+ const errors = (await Promise.allSettled([
119
+ retry(validateTorznabUrls, 5, ms("1 minute")),
120
+ retry(validateUArrLs, 5, ms("1 minute")),
121
+ retry(validateClientConfig, 5, ms("1 minute")),
122
+ ])).filter((p) => p.status === "rejected");
123
+ if (errors.length) {
124
+ throw new CrossSeedError(`\tYour configuration is invalid, please see the ${errors.length > 1 ? "errors" : "error"} above for details.`);
125
+ }
105
126
  logger.verbose({
106
127
  label: Label.CONFIGDUMP,
107
128
  message: inspect(getRuntimeConfig()),
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}