cross-seed 6.1.1 → 6.2.1
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 +26 -5
- package/dist/action.js.map +1 -1
- package/dist/clients/Deluge.js +6 -2
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +50 -17
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +24 -1
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +5 -1
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/config.template.cjs +22 -17
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +82 -14
- package/dist/configSchema.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +19 -11
- package/dist/dataFiles.js.map +1 -1
- package/dist/decide.js +67 -72
- package/dist/decide.js.map +1 -1
- package/dist/inject.js +1 -1
- package/dist/inject.js.map +1 -1
- package/dist/migrations/08-rss.js +15 -0
- package/dist/migrations/08-rss.js.map +1 -0
- package/dist/migrations/migrations.js +2 -0
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/pipeline.js +43 -24
- package/dist/pipeline.js.map +1 -1
- package/dist/pushNotifier.js.map +1 -1
- package/dist/server.js +57 -12
- package/dist/server.js.map +1 -1
- package/dist/startup.js +13 -0
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +1 -1
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +81 -40
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +16 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/config.template.cjs
CHANGED
@@ -114,6 +114,7 @@ module.exports = {
|
|
114
114
|
*/
|
115
115
|
delay: 30,
|
116
116
|
/**
|
117
|
+
* Usually unnecessary: https://www.cross-seed.org/docs/v6-migration#data-based-matching-use-cases
|
117
118
|
* To search with already downloaded data, you can enter the directories
|
118
119
|
* to your downloaded torrent data to find matches, rather than relying
|
119
120
|
* entirely on the .torrent files themselves for matching.
|
@@ -214,15 +215,14 @@ module.exports = {
|
|
214
215
|
*/
|
215
216
|
outputDir: ".",
|
216
217
|
/**
|
217
|
-
* Whether to include single episode torrents in
|
218
|
-
* season packs).
|
218
|
+
* Whether to include single episode torrents in search/webhook/rss.
|
219
219
|
*
|
220
|
-
* This setting does not affect matching episodes from
|
221
|
-
*
|
220
|
+
* This setting does not affect matching episodes from announce. Read more about usage:
|
221
|
+
* https://www.cross-seed.org/docs/v6-migration#updated-includesingleepisodes-behavior
|
222
222
|
*/
|
223
223
|
includeSingleEpisodes: false,
|
224
224
|
/**
|
225
|
-
* Include torrents
|
225
|
+
* Include torrents/data comprised of non-video files.
|
226
226
|
*
|
227
227
|
* If this option is set to false, any folders or torrents whose
|
228
228
|
* totalNonVideoFilesSize / totalSize > fuzzySizeThreshold
|
@@ -243,8 +243,8 @@ module.exports = {
|
|
243
243
|
* includeSingleEpisodes: true
|
244
244
|
* includeNonVideos: false
|
245
245
|
*
|
246
|
-
* To search for absolutely ALL types of content, including non-video,
|
247
|
-
* your episode settings based on the above examples and use:
|
246
|
+
* To search for absolutely ALL types of content, including non-video,
|
247
|
+
* configure your episode settings based on the above examples and use:
|
248
248
|
*
|
249
249
|
* includeNonVideos: true
|
250
250
|
*/
|
@@ -262,7 +262,7 @@ module.exports = {
|
|
262
262
|
* https://github.com/vercel/ms
|
263
263
|
*/
|
264
264
|
/**
|
265
|
-
* Exclude torrents first seen by cross-seed more than this long ago.
|
265
|
+
* Exclude torrents or data first seen by cross-seed more than this long ago.
|
266
266
|
* Examples:
|
267
267
|
* "5 days"
|
268
268
|
* "2 weeks"
|
@@ -271,8 +271,9 @@ module.exports = {
|
|
271
271
|
*/
|
272
272
|
excludeOlder: "2 weeks",
|
273
273
|
/**
|
274
|
-
* Exclude torrents which
|
275
|
-
* ago.
|
274
|
+
* Exclude torrents or data which has been searched more recently than this
|
275
|
+
* long ago.
|
276
|
+
*
|
276
277
|
* Doesn't exclude previously failed searches.
|
277
278
|
* Examples:
|
278
279
|
* "2 days"
|
@@ -291,10 +292,12 @@ module.exports = {
|
|
291
292
|
* Whether to inject using the same labels/categories as the original
|
292
293
|
* torrent.
|
293
294
|
*
|
294
|
-
* qBittorrent:
|
295
|
+
* qBittorrent (linking): The category will always be linkCategory.
|
296
|
+
* If set to true, a tag of category.cross-seed will be added.
|
295
297
|
*
|
296
|
-
* Example: if you have an original label/category called
|
297
|
-
* automatically inject cross-seeds to
|
298
|
+
* Example (Non-Linking): if you have an original label/category called
|
299
|
+
* "Movies", this will automatically inject cross-seeds to
|
300
|
+
* "Movies.cross-seed".
|
298
301
|
*/
|
299
302
|
duplicateCategories: false,
|
300
303
|
/**
|
@@ -332,7 +335,7 @@ module.exports = {
|
|
332
335
|
*/
|
333
336
|
searchTimeout: "2 minutes",
|
334
337
|
/**
|
335
|
-
* The number of searches to make in one run/batch.
|
338
|
+
* The number of searches (unique queries) to make in one run/batch per indexer.
|
336
339
|
* If more than this many searches are queued,
|
337
340
|
* "searchCadence" will determine how long until the next batch.
|
338
341
|
*
|
@@ -343,9 +346,11 @@ module.exports = {
|
|
343
346
|
*/
|
344
347
|
searchLimit: 400,
|
345
348
|
/**
|
346
|
-
* The list of infohashes or strings which are contained in torrents
|
347
|
-
* you want to be excluded from cross-seed. This is the same
|
348
|
-
* torznab, surround the entire set of quoted strings in square
|
349
|
+
* The list of infohashes or strings which are contained in torrents or data
|
350
|
+
* searches that you want to be excluded from cross-seed. This is the same
|
351
|
+
* format as torznab, surround the entire set of quoted strings in square
|
352
|
+
* brackets.
|
353
|
+
*
|
349
354
|
* You can use any combination which must be entered on the one line.
|
350
355
|
* Leave as undefined to disable.
|
351
356
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,qBAAqB;AAErB,MAAM,CAAC,OAAO,GAAG;IAChB;;;;;;;;QAQI;IAEJ;;;;;OAKG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;OAMG;IACH,OAAO,EAAE,EAAE;IAEX;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;OAIG;IACH,IAAI,EAAE,SAAS;IAEf;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;;OAGG;IACH,sBAAsB,EAAE,SAAS;IAEjC;;;;OAIG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;;;;OASG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;OAMG;IACH,kBAAkB,EAAE,SAAS;IAE7B;;;;;;OAMG;IACH,YAAY,EAAE,SAAS;IAEvB;;OAEG;IAEH;;;;OAIG;IACH,KAAK,EAAE,EAAE;IAET
|
1
|
+
{"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,qBAAqB;AAErB,MAAM,CAAC,OAAO,GAAG;IAChB;;;;;;;;QAQI;IAEJ;;;;;OAKG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;OAMG;IACH,OAAO,EAAE,EAAE;IAEX;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;OAIG;IACH,IAAI,EAAE,SAAS;IAEf;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;;OAGG;IACH,sBAAsB,EAAE,SAAS;IAEjC;;;;OAIG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;;;;OASG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;OAMG;IACH,kBAAkB,EAAE,SAAS;IAE7B;;;;;;OAMG;IACH,YAAY,EAAE,SAAS;IAEvB;;OAEG;IAEH;;;;OAIG;IACH,KAAK,EAAE,EAAE;IAET;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,EAAE,EAAE;IAEZ;;;;;;;OAOG;IACH,YAAY,EAAE,iBAAiB;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,EAAE,SAAS;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,UAAU;IAEpB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,KAAK;IAElB;;;;;;;;;;;;OAYG;IACH,SAAS,EAAE,MAAM;IAEjB;;;;OAIG;IACH,YAAY,EAAE,CAAC;IAEf;;;;;;;;;OASG;IACH,UAAU,EAAE,2BAA2B;IAEvC;;;;OAIG;IACH,SAAS,EAAE,GAAG;IAEd;;;;;OAKG;IACH,qBAAqB,EAAE,KAAK;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,gBAAgB,EAAE,KAAK;IAEvB;;;;;;OAMG;IACH,kBAAkB,EAAE,IAAI;IAExB;;;OAGG;IAEH;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS;IAEvB;;;;;;;;;;OAUG;IACH,mBAAmB,EAAE,QAAQ;IAE7B;;;OAGG;IACH,MAAM,EAAE,QAAQ;IAEhB;;;;;;;;;;;OAWG;IACH,mBAAmB,EAAE,KAAK;IAE1B;;;;;;OAMG;IACH,UAAU,EAAE,YAAY;IAExB;;;;;;;;OAQG;IACH,aAAa,EAAE,OAAO;IAEtB;;;;;;OAMG;IACH,aAAa,EAAE,YAAY;IAE3B;;;;;;OAMG;IACH,aAAa,EAAE,WAAW;IAE1B;;;;;;;;;OASG;IACH,WAAW,EAAE,GAAG;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,EAAE;CACb,CAAC"}
|
package/dist/configSchema.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { readdirSync } from "fs";
|
1
2
|
import ms from "ms";
|
2
3
|
import { isAbsolute, relative, resolve } from "path";
|
3
4
|
import { z } from "zod";
|
@@ -16,14 +17,20 @@ const ZodErrorMessages = {
|
|
16
17
|
searchCadenceExcludeRecent: "excludeRecentSearch must be at least 3x searchCadence.",
|
17
18
|
excludeRecentOlder: "excludeOlder and excludeRecentSearch must be defined for searching. excludeOlder must be 2-5x excludeRecentSearch.",
|
18
19
|
fuzzySizeThreshold: "fuzzySizeThreshold must be between 0 and 1 with a maximum of 0.1 when using searchCadence or rssCadence",
|
20
|
+
injectNeedsInjectMode: "`cross-seed inject` requires the 'inject' action.",
|
19
21
|
injectUrl: "You need to specify rtorrentRpcUrl, transmissionRpcUrl, qbittorrentUrl, or delugeRpcUrl when using 'inject'",
|
20
22
|
qBitAutoTMM: "If using Automatic Torrent Management in qBittorrent, please read: https://www.cross-seed.org/docs/v6-migration#qbittorrent",
|
21
23
|
includeSingleEpisodes: "includeSingleEpisodes is not recommended when using announce, please read: https://www.cross-seed.org/docs/v6-migration#updated-includesingleepisodes-behavior",
|
24
|
+
invalidOutputDir: "outputDir should only contain .torrent files, cross-seed will populate and manage (https://www.cross-seed.org/docs/basics/options#outputdir)",
|
25
|
+
invalidTorrentDir: "torrentDir must contain at least one .torrent file (https://www.cross-seed.org/docs/basics/options#torrentdir). If no torrents are in client, set to null for now.",
|
22
26
|
needsTorrentDir: "You need to set torrentDir for rss and announce matching to work.",
|
23
27
|
needsInject: "You need to use the 'inject' action for partial matching.",
|
24
28
|
needsLinkDir: "You need to set a linkDir (and have your data accessible) for risky or partial matching to work.",
|
25
|
-
|
26
|
-
|
29
|
+
linkDirInOtherDirs: "You cannot have your linkDir inside of your torrentDir/dataDirs/outputDir. Please adjust your paths to correct this.",
|
30
|
+
dataDirsInOtherDirs: "You cannot have your dataDirs inside of your torrentDir/linkDir/outputDir. Please adjust your paths to correct this.",
|
31
|
+
torrentDirInOtherDirs: "You cannot have your torrentDir inside of your dataDirs/linkDir/outputDir. Please adjust your paths to correct this.",
|
32
|
+
outputDirInOtherDirs: "You cannot have your outputDir inside of your torrentDir/dataDirs/linkDir. Please adjust your paths to correct this.",
|
33
|
+
relativePaths: "Absolute paths for torrentDir, linkDir, dataDirs, and outputDir are recommended.",
|
27
34
|
};
|
28
35
|
/**
|
29
36
|
* custom zod error map for logging
|
@@ -106,8 +113,16 @@ export const VALIDATION_SCHEMA = z
|
|
106
113
|
.nullish()
|
107
114
|
.transform((value) => (typeof value === "boolean" ? value : false)),
|
108
115
|
maxDataDepth: z.number().gte(1),
|
109
|
-
torrentDir: z
|
110
|
-
|
116
|
+
torrentDir: z
|
117
|
+
.string()
|
118
|
+
.nullable()
|
119
|
+
.refine((d) => !d || readdirSync(d).some((f) => f.endsWith(".torrent")), ZodErrorMessages.invalidTorrentDir),
|
120
|
+
outputDir: z.string().refine((dir) => {
|
121
|
+
if (readdirSync(dir).some((f) => !f.endsWith(".torrent"))) {
|
122
|
+
logger.warn(ZodErrorMessages.invalidOutputDir);
|
123
|
+
}
|
124
|
+
return true;
|
125
|
+
}),
|
111
126
|
injectDir: z.string().optional(),
|
112
127
|
includeSingleEpisodes: z.boolean(),
|
113
128
|
includeNonVideos: z.boolean(),
|
@@ -218,7 +233,8 @@ export const VALIDATION_SCHEMA = z
|
|
218
233
|
}
|
219
234
|
return true;
|
220
235
|
})
|
221
|
-
.refine((config) =>
|
236
|
+
.refine((config) => config.action === Action.INJECT || !config.injectDir, ZodErrorMessages.injectNeedsInjectMode)
|
237
|
+
.refine((config) => !(config.action === Action.INJECT &&
|
222
238
|
!config.rtorrentRpcUrl &&
|
223
239
|
!config.qbittorrentUrl &&
|
224
240
|
!config.transmissionRpcUrl &&
|
@@ -229,18 +245,70 @@ export const VALIDATION_SCHEMA = z
|
|
229
245
|
.refine((config) => config.torrentDir || !config.rssCadence, ZodErrorMessages.needsTorrentDir)
|
230
246
|
.refine((config) => config.linkDir || config.matchMode === MatchMode.SAFE, ZodErrorMessages.needsLinkDir)
|
231
247
|
.refine((config) => {
|
232
|
-
if (config.linkDir
|
233
|
-
return
|
248
|
+
if (!config.linkDir)
|
249
|
+
return true;
|
250
|
+
if (isChildPath(config.linkDir, [config.outputDir]))
|
251
|
+
return false;
|
252
|
+
if (config.dataDirs && isChildPath(config.linkDir, config.dataDirs)) {
|
253
|
+
return false;
|
254
|
+
}
|
255
|
+
if (config.torrentDir &&
|
256
|
+
isChildPath(config.linkDir, [config.torrentDir])) {
|
257
|
+
return false;
|
258
|
+
}
|
259
|
+
return true;
|
260
|
+
}, ZodErrorMessages.linkDirInOtherDirs)
|
261
|
+
.refine((config) => {
|
262
|
+
if (!config.dataDirs)
|
263
|
+
return true;
|
264
|
+
for (const dataDir of config.dataDirs) {
|
265
|
+
if (isChildPath(dataDir, [config.outputDir]))
|
266
|
+
return false;
|
267
|
+
if (config.torrentDir &&
|
268
|
+
isChildPath(dataDir, [config.torrentDir])) {
|
269
|
+
return false;
|
270
|
+
}
|
271
|
+
if (config.linkDir && isChildPath(dataDir, [config.linkDir])) {
|
272
|
+
return false;
|
273
|
+
}
|
274
|
+
}
|
275
|
+
return true;
|
276
|
+
}, ZodErrorMessages.dataDirsInOtherDirs)
|
277
|
+
.refine((config) => {
|
278
|
+
if (!config.torrentDir)
|
279
|
+
return true;
|
280
|
+
if (isChildPath(config.torrentDir, [config.outputDir]))
|
281
|
+
return false;
|
282
|
+
if (config.dataDirs &&
|
283
|
+
isChildPath(config.torrentDir, config.dataDirs)) {
|
284
|
+
return false;
|
285
|
+
}
|
286
|
+
if (config.linkDir &&
|
287
|
+
isChildPath(config.torrentDir, [config.linkDir])) {
|
288
|
+
return false;
|
289
|
+
}
|
290
|
+
return true;
|
291
|
+
}, ZodErrorMessages.torrentDirInOtherDirs)
|
292
|
+
.refine((config) => {
|
293
|
+
if (config.torrentDir &&
|
294
|
+
isChildPath(config.outputDir, [config.torrentDir])) {
|
295
|
+
return false;
|
296
|
+
}
|
297
|
+
if (config.dataDirs && isChildPath(config.outputDir, config.dataDirs)) {
|
298
|
+
return false;
|
299
|
+
}
|
300
|
+
if (config.linkDir && isChildPath(config.outputDir, [config.linkDir])) {
|
301
|
+
return false;
|
234
302
|
}
|
235
303
|
return true;
|
236
|
-
}, ZodErrorMessages.
|
304
|
+
}, ZodErrorMessages.outputDirInOtherDirs)
|
237
305
|
.refine((config) => {
|
238
|
-
if (config.
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
306
|
+
if (!isAbsolute(config.outputDir) ||
|
307
|
+
(config.torrentDir && !isAbsolute(config.torrentDir)) ||
|
308
|
+
(config.linkDir && !isAbsolute(config.linkDir)) ||
|
309
|
+
(config.dataDirs && !config.dataDirs.every(isAbsolute))) {
|
310
|
+
logger.warn(ZodErrorMessages.relativePaths);
|
243
311
|
}
|
244
312
|
return true;
|
245
|
-
}
|
313
|
+
});
|
246
314
|
//# sourceMappingURL=configSchema.js.map
|
package/dist/configSchema.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../src/configSchema.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../src/configSchema.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
@@ -27,6 +27,7 @@ export const CALIBRE_INDEXNUM_REGEX = /\s?\(\d+\)$/;
|
|
27
27
|
export const SAVED_TORRENTS_INFO_REGEX = /^\[(?<mediaType>.+?)\]\[(?<tracker>.+?)\](?<name>.+?)(?:\[[^\]]*?\])?\.torrent$/i;
|
28
28
|
export const BAD_GROUP_PARSE_REGEX = /^(?<badmatch>(?:dl|DDP?|aac|eac3|atmos|dts|ma|hd|[heav.c]{3.5}|[xh.]{1,2}[2456]|[0-9]+[ip]?|dxva|full|blu|ray|s(?:eason)?\W\d+|\W){3,})$/i;
|
29
29
|
export const JSON_VALUES_REGEX = /".+?"\s*:\s*"(?<value>.+?)"\s*(?:,|})/g;
|
30
|
+
export const ABS_WIN_PATH_REGEX = /^[a-z]:|^\\/i;
|
30
31
|
// Needs to be handled through helper functions since there are variations
|
31
32
|
const SOURCE_REGEXES = {
|
32
33
|
AMZN: /\b(amzn|amazon(hd)?)\b[ ._-]web[ ._-]?(dl|rip)?\b/i,
|
package/dist/constants.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,eAAe,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GACpB,sPAAsP,CAAC;AACxP,MAAM,CAAC,MAAM,iBAAiB,GAAG,uCAAuC,CAAC;AACzE,MAAM,CAAC,MAAM,YAAY,GACxB,6EAA6E,CAAC;AAC/E,MAAM,CAAC,MAAM,WAAW,GACvB,uEAAuE,CAAC;AACzE,MAAM,CAAC,MAAM,WAAW,GACvB,iUAAiU,CAAC;AACnU,MAAM,CAAC,MAAM,mBAAmB,GAC/B,yGAAyG,CAAC;AAC3G,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAC/B,+CAA+C,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,oCAAoC,CAAC;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AACpE,MAAM,CAAC,MAAM,aAAa,GACzB,6KAA6K,CAAC;AAC/K,MAAM,CAAC,MAAM,uBAAuB,GACnC,0CAA0C,CAAC;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,MAAM,CAAC,MAAM,yBAAyB,GACrC,kFAAkF,CAAC;AACpF,MAAM,CAAC,MAAM,qBAAqB,GACjC,2IAA2I,CAAC;AAC7I,MAAM,CAAC,MAAM,iBAAiB,GAAG,wCAAwC,CAAC;
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/dataFiles.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { readdirSync, statSync } from "fs";
|
2
2
|
import { basename, extname, join } from "path";
|
3
3
|
import { IGNORED_FOLDERS_SUBSTRINGS, VIDEO_EXTENSIONS } from "./constants.js";
|
4
|
+
import { logger } from "./logger.js";
|
4
5
|
import { getRuntimeConfig } from "./runtimeConfig.js";
|
5
6
|
function shouldIgnorePathHeuristically(root, isDir) {
|
6
7
|
const searchBasename = basename(root);
|
@@ -12,18 +13,25 @@ function shouldIgnorePathHeuristically(root, isDir) {
|
|
12
13
|
}
|
13
14
|
}
|
14
15
|
export function findPotentialNestedRoots(root, depth, isDirHint) {
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
try {
|
17
|
+
const isDir = isDirHint !== undefined ? isDirHint : statSync(root).isDirectory();
|
18
|
+
if (depth <= 0 || shouldIgnorePathHeuristically(root, isDir)) {
|
19
|
+
return [];
|
20
|
+
}
|
21
|
+
// if depth is 0, don't look at children
|
22
|
+
else if (depth > 0 && isDir) {
|
23
|
+
const directChildren = readdirSync(root, { withFileTypes: true });
|
24
|
+
const allDescendants = directChildren.flatMap((dirent) => findPotentialNestedRoots(join(root, dirent.name), depth - 1, dirent.isDirectory()));
|
25
|
+
return [root, ...allDescendants];
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
return [root];
|
29
|
+
}
|
24
30
|
}
|
25
|
-
|
26
|
-
|
31
|
+
catch (e) {
|
32
|
+
logger.verbose(`Failed to process path: ${root}`);
|
33
|
+
logger.debug(e);
|
34
|
+
return [];
|
27
35
|
}
|
28
36
|
}
|
29
37
|
export function findSearcheesFromAllDataDirs() {
|
package/dist/dataFiles.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dataFiles.js","sourceRoot":"","sources":["../src/dataFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,SAAS,6BAA6B,CAAC,IAAY,EAAE,KAAc;IAClE,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,0BAA0B,CAAC,QAAQ,CACzC,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,IAAY,EACZ,KAAa,EACb,SAAmB;IAEnB,MAAM,KAAK,GACV,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"dataFiles.js","sourceRoot":"","sources":["../src/dataFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,SAAS,6BAA6B,CAAC,IAAY,EAAE,KAAc;IAClE,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,0BAA0B,CAAC,QAAQ,CACzC,cAAc,CAAC,WAAW,EAAE,CAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,IAAY,EACZ,KAAa,EACb,SAAmB;IAEnB,IAAI,CAAC;QACJ,MAAM,KAAK,GACV,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpE,IAAI,KAAK,IAAI,CAAC,IAAI,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,EAAE,CAAC;QACX,CAAC;QACD,wCAAwC;aACnC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,wBAAwB,CACvB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EACvB,KAAK,GAAG,CAAC,EACT,MAAM,CAAC,WAAW,EAAE,CACpB,CACD,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtD,OAAO,QAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACpC,WAAW,CAAC,OAAO,CAAC;SAClB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACtC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CACjE,CAAC;AACH,CAAC"}
|
package/dist/decide.js
CHANGED
@@ -2,7 +2,7 @@ import { existsSync, statSync, unlinkSync, utimesSync, writeFileSync, } from "fs
|
|
2
2
|
import ms from "ms";
|
3
3
|
import path from "path";
|
4
4
|
import { appDir } from "./configuration.js";
|
5
|
-
import { ANIME_GROUP_REGEX, Decision, isAnyMatchedDecision,
|
5
|
+
import { ANIME_GROUP_REGEX, Decision, isAnyMatchedDecision, MatchMode, parseSource, REPACK_PROPER_REGEX, RES_STRICT_REGEX, SEASON_REGEX, TORRENT_CACHE_FOLDER, } from "./constants.js";
|
6
6
|
import { db } from "./db.js";
|
7
7
|
import { Label, logger } from "./logger.js";
|
8
8
|
import { Metafile } from "./parseTorrent.js";
|
@@ -189,14 +189,13 @@ function sourceDoesMatch(searcheeTitle, candidateName) {
|
|
189
189
|
return true;
|
190
190
|
return searcheeSource === candidateSource;
|
191
191
|
}
|
192
|
-
export async function assessCandidate(metaOrCandidate, searchee,
|
192
|
+
export async function assessCandidate(metaOrCandidate, searchee, infoHashesToExclude) {
|
193
193
|
const { blockList, includeSingleEpisodes, matchMode } = getRuntimeConfig();
|
194
194
|
// When metaOrCandidate is a Metafile, skip straight to the
|
195
195
|
// main matching algorithms as we don't need pre-download filtering.
|
196
196
|
const isCandidate = !(metaOrCandidate instanceof Metafile);
|
197
|
-
const name = metaOrCandidate.name;
|
198
|
-
const size = isCandidate ? metaOrCandidate.size : metaOrCandidate.length;
|
199
197
|
if (isCandidate) {
|
198
|
+
const name = metaOrCandidate.name;
|
200
199
|
if (!releaseGroupDoesMatch(searchee.title, name)) {
|
201
200
|
return { decision: Decision.RELEASE_GROUP_MISMATCH };
|
202
201
|
}
|
@@ -206,6 +205,7 @@ export async function assessCandidate(metaOrCandidate, searchee, hashesToExclude
|
|
206
205
|
if (!sourceDoesMatch(searchee.title, name)) {
|
207
206
|
return { decision: Decision.SOURCE_MISMATCH };
|
208
207
|
}
|
208
|
+
const size = metaOrCandidate.size;
|
209
209
|
if (size && !fuzzySizeDoesMatch(size, searchee)) {
|
210
210
|
return { decision: Decision.FUZZY_SIZE_MISMATCH };
|
211
211
|
}
|
@@ -214,7 +214,10 @@ export async function assessCandidate(metaOrCandidate, searchee, hashesToExclude
|
|
214
214
|
}
|
215
215
|
}
|
216
216
|
if (findBlockedStringInReleaseMaybe(searchee, blockList)) {
|
217
|
-
return {
|
217
|
+
return {
|
218
|
+
decision: Decision.BLOCKED_RELEASE,
|
219
|
+
metafile: !isCandidate ? metaOrCandidate : undefined,
|
220
|
+
};
|
218
221
|
}
|
219
222
|
let metafile;
|
220
223
|
if (isCandidate) {
|
@@ -245,7 +248,7 @@ export async function assessCandidate(metaOrCandidate, searchee, hashesToExclude
|
|
245
248
|
if (searchee.infoHash === metafile.infoHash) {
|
246
249
|
return { decision: Decision.SAME_INFO_HASH, metafile };
|
247
250
|
}
|
248
|
-
if (
|
251
|
+
if (infoHashesToExclude.has(metafile.infoHash)) {
|
249
252
|
return { decision: Decision.INFO_HASH_ALREADY_EXISTS, metafile };
|
250
253
|
}
|
251
254
|
// Prevent candidate episodes from matching searchee season packs
|
@@ -307,47 +310,63 @@ function cacheTorrentFile(meta) {
|
|
307
310
|
return;
|
308
311
|
writeFileSync(torrentPath, meta.encode());
|
309
312
|
}
|
310
|
-
async function assessAndSaveResults(metaOrCandidate, searchee, guid, infoHashesToExclude, firstSeen) {
|
313
|
+
async function assessAndSaveResults(metaOrCandidate, searchee, guid, infoHashesToExclude, firstSeen, guidInfoHashMap) {
|
311
314
|
const assessment = await assessCandidate(metaOrCandidate, searchee, infoHashesToExclude);
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
315
|
+
if (assessment.metafile) {
|
316
|
+
guidInfoHashMap.set(guid, assessment.metafile.infoHash);
|
317
|
+
await db.transaction(async (trx) => {
|
318
|
+
const { id } = await trx("searchee")
|
319
|
+
.select("id")
|
320
|
+
.where({ name: searchee.title })
|
321
|
+
.first();
|
322
|
+
await trx("decision")
|
323
|
+
.insert({
|
324
|
+
searchee_id: id,
|
325
|
+
guid: guid,
|
326
|
+
info_hash: assessment.metafile.infoHash,
|
327
|
+
decision: assessment.decision,
|
328
|
+
first_seen: firstSeen,
|
329
|
+
last_seen: Date.now(),
|
330
|
+
fuzzy_size_factor: getFuzzySizeFactor(),
|
331
|
+
})
|
332
|
+
.onConflict(["searchee_id", "guid"])
|
333
|
+
.merge();
|
334
|
+
});
|
335
|
+
}
|
330
336
|
return assessment;
|
331
337
|
}
|
338
|
+
export async function getGuidInfoHashMap() {
|
339
|
+
return new Map((await db("decision")
|
340
|
+
.select("guid", "info_hash")
|
341
|
+
.whereNotNull("info_hash")).map(({ guid, info_hash }) => [guid, info_hash]));
|
342
|
+
}
|
332
343
|
/**
|
333
344
|
* Some trackers have alt titles which get their own guid but resolve to same torrent
|
334
345
|
* @param guid The guid of the candidate
|
346
|
+
* @param link The link of the candidate
|
347
|
+
* @param guidInfoHashMap The map of guids to info hashes. Necessary for optimal fuzzy lookups.
|
335
348
|
* @returns The info hash of the torrent if found
|
336
349
|
*/
|
337
|
-
async function
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
.
|
346
|
-
|
347
|
-
|
350
|
+
async function guidLookup(guid, link, guidInfoHashMap) {
|
351
|
+
const infoHash = guidInfoHashMap.get(guid) ?? guidInfoHashMap.get(link);
|
352
|
+
if (infoHash)
|
353
|
+
return infoHash;
|
354
|
+
for (const guidOrLink of [guid, link]) {
|
355
|
+
if (!guidOrLink.includes(".tv/torrent/"))
|
356
|
+
continue;
|
357
|
+
const torrentIdRegex = /\.tv\/torrent\/(\d+)\/group/;
|
358
|
+
const torrentIdStr = guidOrLink.match(torrentIdRegex)?.[1];
|
359
|
+
if (!torrentIdStr)
|
360
|
+
continue;
|
361
|
+
for (const [key, value] of guidInfoHashMap) {
|
362
|
+
if (key.match(torrentIdRegex)?.[1] === torrentIdStr) {
|
363
|
+
return value;
|
364
|
+
}
|
365
|
+
}
|
366
|
+
}
|
348
367
|
}
|
349
|
-
export async function assessCandidateCaching(candidate, searchee, infoHashesToExclude) {
|
350
|
-
const { guid,
|
368
|
+
export async function assessCandidateCaching(candidate, searchee, infoHashesToExclude, guidInfoHashMap) {
|
369
|
+
const { name, guid, link, tracker } = candidate;
|
351
370
|
const cacheEntry = await db("decision")
|
352
371
|
.select({
|
353
372
|
id: "decision.id",
|
@@ -359,11 +378,7 @@ export async function assessCandidateCaching(candidate, searchee, infoHashesToEx
|
|
359
378
|
.join("searchee", "decision.searchee_id", "searchee.id")
|
360
379
|
.where({ name: searchee.title, guid })
|
361
380
|
.first();
|
362
|
-
const metaInfoHash =
|
363
|
-
.select({ infoHash: "info_hash" })
|
364
|
-
.where({ guid })
|
365
|
-
.whereNotNull("info_hash")
|
366
|
-
.first())?.infoHash ?? (await fuzzyGuidLookup(guid));
|
381
|
+
const metaInfoHash = await guidLookup(guid, link, guidInfoHashMap);
|
367
382
|
const metaOrCandidate = metaInfoHash
|
368
383
|
? existsInTorrentCache(metaInfoHash)
|
369
384
|
? (await getCachedTorrentFile(metaInfoHash)).orElse(candidate)
|
@@ -377,42 +392,22 @@ export async function assessCandidateCaching(candidate, searchee, infoHashesToEx
|
|
377
392
|
candidate.size = metaOrCandidate.length; // Trackers can be wrong
|
378
393
|
}
|
379
394
|
let assessment;
|
380
|
-
if (
|
381
|
-
// New candidate, could be metafile from cache
|
382
|
-
assessment = await assessAndSaveResults(metaOrCandidate, searchee, guid, infoHashesToExclude, Date.now());
|
383
|
-
}
|
384
|
-
else if (isAnyMatchedDecision(cacheEntry.decision) &&
|
385
|
-
infoHashesToExclude.includes(cacheEntry.infoHash)) {
|
395
|
+
if (infoHashesToExclude.has(cacheEntry?.infoHash)) {
|
386
396
|
// Already injected fast path, preserve match decision
|
387
397
|
assessment = { decision: Decision.INFO_HASH_ALREADY_EXISTS };
|
388
|
-
await db("decision")
|
389
|
-
|
390
|
-
|
391
|
-
}
|
392
|
-
else if (isStaticDecision(cacheEntry.decision)) {
|
393
|
-
// These decisions will never change unless we update their logic
|
394
|
-
assessment = { decision: cacheEntry.decision };
|
395
|
-
await db("decision").where({ id: cacheEntry.id }).update({
|
398
|
+
await db("decision")
|
399
|
+
.where({ id: cacheEntry.id })
|
400
|
+
.update({
|
396
401
|
last_seen: Date.now(),
|
402
|
+
decision: isAnyMatchedDecision(cacheEntry.decision)
|
403
|
+
? cacheEntry.decision
|
404
|
+
: Decision.INFO_HASH_ALREADY_EXISTS,
|
397
405
|
});
|
398
406
|
}
|
399
407
|
else {
|
400
|
-
|
401
|
-
if (cacheEntry.decision !== Decision.FUZZY_SIZE_MISMATCH ||
|
402
|
-
cacheEntry.fuzzySizeFactor < getFuzzySizeFactor()) {
|
403
|
-
assessment = await assessAndSaveResults(metaOrCandidate, searchee, guid, infoHashesToExclude, cacheEntry.firstSeen);
|
404
|
-
}
|
405
|
-
else {
|
406
|
-
assessment = { decision: Decision.FUZZY_SIZE_MISMATCH };
|
407
|
-
await db("decision").where({ id: cacheEntry.id }).update({
|
408
|
-
last_seen: Date.now(),
|
409
|
-
});
|
410
|
-
}
|
411
|
-
}
|
412
|
-
const wasCached = cacheEntry?.decision === assessment.decision;
|
413
|
-
if (!wasCached) {
|
414
|
-
logDecision(searchee, candidate, assessment.decision, assessment.metafile, tracker);
|
408
|
+
assessment = await assessAndSaveResults(metaOrCandidate, searchee, guid, infoHashesToExclude, cacheEntry?.firstSeen ?? Date.now(), guidInfoHashMap);
|
415
409
|
}
|
410
|
+
logDecision(searchee, candidate, assessment.decision, assessment.metafile, tracker);
|
416
411
|
return assessment;
|
417
412
|
}
|
418
413
|
//# sourceMappingURL=decide.js.map
|