cross-seed 4.4.4 → 5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.template.docker.cjs","sourceRoot":"","sources":["../src/config.template.docker.cjs"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,wBAAwB;;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB;;;OAGG;IACH,KAAK,EAAE,EAAE;IAET;;;;;OAKG;IACH,OAAO,EAAE,EAAE;IAEX;;;;;;;OAOG;IACH,UAAU,EAAE,WAAW;IAEvB;;;;OAIG;IACH,SAAS,EAAE,cAAc;IAEzB;;OAEG;IACH,eAAe,EAAE,KAAK;IAEtB;;;;;OAKG;IACH,gBAAgB,EAAE,KAAK;IAEvB;;;OAGG;IACH,kBAAkB,EAAE,IAAI;IAExB;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS;IAEvB;;;;;;;OAOG;IACH,mBAAmB,EAAE,SAAS;IAE9B;;;OAGG;IACH,MAAM,EAAE,MAAM;IAEd;;;;OAIG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;OAKG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;OAMG;IACH,kBAAkB,EAAE,SAAS;IAE7B;;;;;OAKG;IACH,mBAAmB,EAAE,KAAK;IAE1B;;;;OAIG;IACH,sBAAsB,EAAE,SAAS;IAEjC;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;;OAGG;IACH,IAAI,EAAE,SAAS;IAEf;;;;;;;OAOG;IACH,UAAU,EAAE,SAAS;IAErB;;;;;;;;OAQG;IACH,aAAa,EAAE,SAAS;CACxB,CAAC"}
1
+ {"version":3,"file":"config.template.docker.cjs","sourceRoot":"","sources":["../src/config.template.docker.cjs"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,wBAAwB;;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB;;;OAGG;IACH,KAAK,EAAE,EAAE;IAET;;;;;OAKG;IACH,OAAO,EAAE,EAAE;IAEX;;;OAGG;IACH,QAAQ,EAAE,EAAE;IAEZ;;;;OAIG;IACH,SAAS,EAAE,SAAS;IAEpB;;;OAGG;IACH,YAAY,EAAE,SAAS;IAEvB;;;OAGG;IACH,OAAO,EAAE,SAAS;IAElB;;;;OAIG;IACH,QAAQ,EAAE,SAAS;IAEnB;;;OAGG;IACH,WAAW,EAAE,KAAK;IAElB;;;;OAIG;IACH,YAAY,EAAE,CAAC;IAEf;;;;;;;OAOG;IACH,UAAU,EAAE,WAAW;IAEvB;;;;OAIG;IACH,SAAS,EAAE,cAAc;IAEzB;;OAEG;IACH,eAAe,EAAE,KAAK;IAEtB;;;;;OAKG;IACH,gBAAgB,EAAE,KAAK;IAEvB;;;OAGG;IACH,kBAAkB,EAAE,IAAI;IAExB;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS;IAEvB;;;;;;;OAOG;IACH,mBAAmB,EAAE,SAAS;IAE9B;;;OAGG;IACH,MAAM,EAAE,MAAM;IAEd;;;;OAIG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;OAKG;IACH,cAAc,EAAE,SAAS;IAEzB;;;;;;OAMG;IACH,kBAAkB,EAAE,SAAS;IAE7B;;;;;OAKG;IACH,mBAAmB,EAAE,KAAK;IAE1B;;;;OAIG;IACH,sBAAsB,EAAE,SAAS;IAEjC;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;;OAGG;IACH,IAAI,EAAE,SAAS;IAEf;;;;;;;OAOG;IACH,UAAU,EAAE,SAAS;IAErB;;;;;;;;OAQG;IACH,aAAa,EAAE,SAAS;CACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AA8BlD,MAAM,UAAU,MAAM;IACrB,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,GACQ;IACtB,YAAY,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC7B,oBAAoB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CACjD,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;KACP;IACD,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE;QACtC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KACjC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACpE;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;KACV;AACF,CAAC"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAqClD,MAAM,UAAU,MAAM;IACrB,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,GACQ;IACtB,YAAY,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC7B,oBAAoB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CACjD,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;KACP;IACD,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE;QACtC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KACjC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACpE;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;KACV;AACF,CAAC"}
package/dist/constants.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export const EP_REGEX = /^(?<title>.+)[. ](?<season>S\d+)(?<episode>E\d+)/i;
2
2
  export const SEASON_REGEX = /^(?<title>.+)[. ](?<season>S\d+)(?:\s?-\s?(?<seasonmax>S?\d+))?(?!E\d+)/i;
3
3
  export const MOVIE_REGEX = /^(?<title>.+)[. ][[(]?(?<year>\d{4})[)\]]?(?![pi])/i;
4
- export const EXTENSIONS = ["mkv", "mp4", "avi"];
4
+ export const VIDEO_EXTENSIONS = [".mkv", ".mp4", ".avi"];
5
+ export const DATA_EXTENSIONS = [".mkv", ".avi", ".mp4", ".ts", ".flac", ".mp3"];
5
6
  export const TORRENT_CACHE_FOLDER = "torrent_cache";
6
7
  export var Action;
7
8
  (function (Action) {
@@ -22,6 +23,7 @@ export var SaveResult;
22
23
  export var Decision;
23
24
  (function (Decision) {
24
25
  Decision["MATCH"] = "MATCH";
26
+ Decision["MATCH_SIZE_ONLY"] = "MATCH_SIZE_ONLY";
25
27
  Decision["SIZE_MISMATCH"] = "SIZE_MISMATCH";
26
28
  Decision["NO_DOWNLOAD_LINK"] = "NO_DOWNLOAD_LINK";
27
29
  Decision["DOWNLOAD_FAILED"] = "DOWNLOAD_FAILED";
@@ -29,4 +31,14 @@ export var Decision;
29
31
  Decision["INFO_HASH_ALREADY_EXISTS"] = "INFO_HASH_ALREADY_EXISTS";
30
32
  Decision["FILE_TREE_MISMATCH"] = "FILE_TREE_MISMATCH";
31
33
  })(Decision = Decision || (Decision = {}));
34
+ export var MatchMode;
35
+ (function (MatchMode) {
36
+ MatchMode["SAFE"] = "safe";
37
+ MatchMode["RISKY"] = "risky";
38
+ })(MatchMode = MatchMode || (MatchMode = {}));
39
+ export var LinkType;
40
+ (function (LinkType) {
41
+ LinkType["SYMLINK"] = "symlink";
42
+ LinkType["HARDLINK"] = "hardlink";
43
+ })(LinkType = LinkType || (LinkType = {}));
32
44
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,mDAAmD,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GACxB,0EAA0E,CAAC;AAC5E,MAAM,CAAC,MAAM,WAAW,GACvB,qDAAqD,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,GAAN,MAAM,KAAN,MAAM,QAGjB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,uCAAoB,CAAA;IACpB,sCAAmB,CAAA;IACnB,oDAAiC,CAAA;IACjC,gEAA6C,CAAA;AAC9C,CAAC,EALW,eAAe,GAAf,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACrB,6BAAe,CAAA;AAChB,CAAC,EAFW,UAAU,GAAV,UAAU,KAAV,UAAU,QAErB;AAID,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,2CAA+B,CAAA;IAC/B,iDAAqC,CAAA;IACrC,+CAAmC,CAAA;IACnC,yCAA6B,CAAA;IAC7B,iEAAqD,CAAA;IACrD,qDAAyC,CAAA;AAC1C,CAAC,EARW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAQnB"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,mDAAmD,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GACxB,0EAA0E,CAAC;AAC5E,MAAM,CAAC,MAAM,WAAW,GACvB,qDAAqD,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,GAAN,MAAM,KAAN,MAAM,QAGjB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,uCAAoB,CAAA;IACpB,sCAAmB,CAAA;IACnB,oDAAiC,CAAA;IACjC,gEAA6C,CAAA;AAC9C,CAAC,EALW,eAAe,GAAf,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACrB,6BAAe,CAAA;AAChB,CAAC,EAFW,UAAU,GAAV,UAAU,KAAV,UAAU,QAErB;AAID,MAAM,CAAN,IAAY,QASX;AATD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,+CAAmC,CAAA;IACnC,2CAA+B,CAAA;IAC/B,iDAAqC,CAAA;IACrC,+CAAmC,CAAA;IACnC,yCAA6B,CAAA;IAC7B,iEAAqD,CAAA;IACrD,qDAAyC,CAAA;AAC1C,CAAC,EATW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QASnB;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,0BAAa,CAAA;IACb,4BAAe,CAAA;AAChB,CAAC,EAHW,SAAS,GAAT,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;AACtB,CAAC,EAHW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -0,0 +1,27 @@
1
+ import { readdirSync, statSync } from "fs";
2
+ import { extname, join } from "path";
3
+ import { DATA_EXTENSIONS } from "./constants.js";
4
+ import { getRuntimeConfig } from "./runtimeConfig.js";
5
+ export function findPotentialNestedRoots(root, depth, isDirHint) {
6
+ const isDir = isDirHint !== undefined ? isDirHint : statSync(root).isDirectory();
7
+ // if depth is 0, don't look at children
8
+ if (depth > 0 && isDir) {
9
+ const directChildren = readdirSync(root, { withFileTypes: true });
10
+ const allDescendants = directChildren.flatMap((dirent) => findPotentialNestedRoots(join(root, dirent.name), depth - 1, dirent.isDirectory()));
11
+ return [root, ...allDescendants];
12
+ }
13
+ else if (DATA_EXTENSIONS.includes(extname(root)) &&
14
+ !root.includes("sample")) {
15
+ return [root];
16
+ }
17
+ else {
18
+ return [];
19
+ }
20
+ }
21
+ export function findSearcheesFromAllDataDirs() {
22
+ const { dataDirs, maxDataDepth } = getRuntimeConfig();
23
+ return dataDirs.flatMap((dataDir) => readdirSync(dataDir)
24
+ .map((dirent) => join(dataDir, dirent))
25
+ .flatMap((path) => findPotentialNestedRoots(path, maxDataDepth)));
26
+ }
27
+ //# sourceMappingURL=dataFiles.js.map
@@ -0,0 +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,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,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;IAEpE,wCAAwC;IACxC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE;QACvB,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,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;QACF,OAAO,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC;KACjC;SAAM,IACN,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACvB;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;KACd;SAAM;QACN,OAAO,EAAE,CAAC;KACV;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,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
@@ -1,8 +1,8 @@
1
- import { existsSync, writeFileSync } from "fs";
1
+ import { existsSync, statSync, writeFileSync } from "fs";
2
2
  import parseTorrent from "parse-torrent";
3
3
  import path from "path";
4
4
  import { appDir } from "./configuration.js";
5
- import { Decision, TORRENT_CACHE_FOLDER } from "./constants.js";
5
+ import { MatchMode, Decision, TORRENT_CACHE_FOLDER } from "./constants.js";
6
6
  import { db } from "./db.js";
7
7
  import { Label, logger } from "./logger.js";
8
8
  import { getRuntimeConfig } from "./runtimeConfig.js";
@@ -53,6 +53,12 @@ export function compareFileTrees(candidate, searchee) {
53
53
  };
54
54
  return getFiles(candidate).every((elOfA) => searchee.files.some((elOfB) => cmp(elOfA, elOfB)));
55
55
  }
56
+ export function compareFileTreesIgnoringNames(candidate, searchee) {
57
+ const cmp = (candidate, searchee) => {
58
+ return searchee.length === candidate.length;
59
+ };
60
+ return candidate.files.every((elOfA) => searchee.files.some((elOfB) => cmp(elOfA, elOfB)));
61
+ }
56
62
  function sizeDoesMatch(resultSize, searchee) {
57
63
  const { fuzzySizeThreshold } = getRuntimeConfig();
58
64
  const { length } = searchee;
@@ -61,6 +67,7 @@ function sizeDoesMatch(resultSize, searchee) {
61
67
  return resultSize >= lowerBound && resultSize <= upperBound;
62
68
  }
63
69
  async function assessCandidateHelper({ link, size }, searchee, hashesToExclude) {
70
+ const { matchMode } = getRuntimeConfig();
64
71
  if (size != null && !sizeDoesMatch(size, searchee)) {
65
72
  return { decision: Decision.SIZE_MISMATCH };
66
73
  }
@@ -76,10 +83,19 @@ async function assessCandidateHelper({ link, size }, searchee, hashesToExclude)
76
83
  if (hashesToExclude.includes(candidateMeta.infoHash)) {
77
84
  return { decision: Decision.INFO_HASH_ALREADY_EXISTS };
78
85
  }
79
- if (!compareFileTrees(candidateMeta, searchee)) {
86
+ const perfectMatch = compareFileTrees(candidateMeta, searchee);
87
+ if (perfectMatch) {
88
+ return { decision: Decision.MATCH, metafile: candidateMeta };
89
+ }
90
+ if (!searchee.path) {
80
91
  return { decision: Decision.FILE_TREE_MISMATCH };
81
92
  }
82
- return { decision: Decision.MATCH, metafile: candidateMeta };
93
+ if (matchMode == MatchMode.RISKY &&
94
+ !statSync(searchee.path).isDirectory() &&
95
+ compareFileTreesIgnoringNames(candidateMeta, searchee)) {
96
+ return { decision: Decision.MATCH_SIZE_ONLY, metafile: candidateMeta };
97
+ }
98
+ return { decision: Decision.FILE_TREE_MISMATCH };
83
99
  }
84
100
  function existsInTorrentCache(infoHash) {
85
101
  return existsSync(path.join(appDir(), TORRENT_CACHE_FOLDER, `${infoHash}.cached.torrent`));
@@ -92,7 +108,8 @@ function cacheTorrentFile(meta) {
92
108
  }
93
109
  async function assessAndSaveResults(result, searchee, guid, infoHashesToExclude) {
94
110
  const assessment = await assessCandidateHelper(result, searchee, infoHashesToExclude);
95
- if (assessment.decision === Decision.MATCH) {
111
+ if (assessment.decision === Decision.MATCH ||
112
+ assessment.decision === Decision.MATCH_SIZE_ONLY) {
96
113
  cacheTorrentFile(assessment.metafile);
97
114
  }
98
115
  await db.transaction(async (trx) => {
@@ -105,7 +122,8 @@ async function assessAndSaveResults(result, searchee, guid, infoHashesToExclude)
105
122
  searchee_id: id,
106
123
  guid: guid,
107
124
  decision: assessment.decision,
108
- info_hash: assessment.decision === Decision.MATCH
125
+ info_hash: assessment.decision === Decision.MATCH ||
126
+ assessment.decision === Decision.MATCH_SIZE_ONLY
109
127
  ? assessment.metafile.infoHash
110
128
  : null,
111
129
  last_seen: now,
@@ -133,7 +151,8 @@ async function assessCandidateCaching(candidate, searchee, infoHashesToExclude)
133
151
  assessment = await assessAndSaveResults(candidate, searchee, guid, infoHashesToExclude);
134
152
  logReason(assessment.decision, false);
135
153
  }
136
- else if (cacheEntry.decision === Decision.MATCH &&
154
+ else if ((cacheEntry.decision === Decision.MATCH ||
155
+ cacheEntry.decision === Decision.MATCH_SIZE_ONLY) &&
137
156
  infoHashesToExclude.includes(cacheEntry.infoHash)) {
138
157
  // has been added since the last run
139
158
  assessment = { decision: Decision.INFO_HASH_ALREADY_EXISTS };
@@ -141,7 +160,8 @@ async function assessCandidateCaching(candidate, searchee, infoHashesToExclude)
141
160
  .where({ id: cacheEntry.id })
142
161
  .update({ decision: Decision.INFO_HASH_ALREADY_EXISTS });
143
162
  }
144
- else if (cacheEntry.decision === Decision.MATCH &&
163
+ else if ((cacheEntry.decision === Decision.MATCH ||
164
+ cacheEntry.decision === Decision.MATCH_SIZE_ONLY) &&
145
165
  existsInTorrentCache(cacheEntry.infoHash)) {
146
166
  // cached match
147
167
  assessment = {
@@ -149,7 +169,8 @@ async function assessCandidateCaching(candidate, searchee, infoHashesToExclude)
149
169
  metafile: await getCachedTorrentFile(cacheEntry.infoHash),
150
170
  };
151
171
  }
152
- else if (cacheEntry.decision === Decision.MATCH) {
172
+ else if (cacheEntry.decision === Decision.MATCH ||
173
+ cacheEntry.decision === Decision.MATCH_SIZE_ONLY) {
153
174
  assessment = await assessAndSaveResults(candidate, searchee, guid, infoHashesToExclude);
154
175
  logReason(assessment.decision, false);
155
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"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"}
package/dist/pipeline.js CHANGED
@@ -4,18 +4,19 @@ import { zip } from "lodash-es";
4
4
  import ms from "ms";
5
5
  import { performAction, performActions } from "./action.js";
6
6
  import { Decision, InjectionResult, SaveResult, } from "./constants.js";
7
+ import { findPotentialNestedRoots, findSearcheesFromAllDataDirs, } from "./dataFiles.js";
7
8
  import { db } from "./db.js";
8
9
  import { assessCandidate } from "./decide.js";
9
10
  import { IndexerStatus, updateIndexerStatus, updateSearchTimestamps, } from "./indexers.js";
10
11
  import { Label, logger } from "./logger.js";
11
12
  import { filterByContent, filterDupes, filterTimestamps } from "./preFilter.js";
12
13
  import { sendResultsNotification } from "./pushNotifier.js";
13
- import { EmptyNonceOptions, getRuntimeConfig, } from "./runtimeConfig.js";
14
- import { createSearcheeFromMetafile, createSearcheeFromTorrentFile, } from "./searchee.js";
14
+ import { getRuntimeConfig } from "./runtimeConfig.js";
15
+ import { createSearcheeFromMetafile, createSearcheeFromPath, createSearcheeFromTorrentFile, } from "./searchee.js";
15
16
  import { getInfoHashesToExclude, getTorrentByCriteria, getTorrentByFuzzyName, indexNewTorrents, loadTorrentDirLight, } from "./torrent.js";
16
17
  import { queryRssFeeds, searchTorznab } from "./torznab.js";
17
18
  import { filterAsync, stripExtension } from "./utils.js";
18
- async function findOnOtherSites(searchee, hashesToExclude, nonceOptions = EmptyNonceOptions) {
19
+ async function findOnOtherSites(searchee, hashesToExclude) {
19
20
  const assessEach = async (result) => ({
20
21
  assessment: await assessCandidate(result, searchee, hashesToExclude),
21
22
  tracker: result.tracker,
@@ -52,8 +53,9 @@ async function findOnOtherSites(searchee, hashesToExclude, nonceOptions = EmptyN
52
53
  });
53
54
  await updateSearchTimestamps(searchee.name, Array.from(notRateLimited));
54
55
  await updateIndexerStatus(IndexerStatus.RATE_LIMITED, Date.now() + ms("1 hour"), Array.from(rateLimited));
55
- const matches = assessed.filter((e) => e.assessment.decision === Decision.MATCH);
56
- const actionResults = await performActions(searchee, matches, nonceOptions);
56
+ const matches = assessed.filter((e) => e.assessment.decision === Decision.MATCH ||
57
+ e.assessment.decision === Decision.MATCH_SIZE_ONLY);
58
+ const actionResults = await performActions(searchee, matches);
57
59
  if (!actionResults.includes(InjectionResult.TORRENT_NOT_COMPLETE)) {
58
60
  const zipped = zip(matches.map((m) => m.assessment), matches.map((m) => m.tracker), actionResults);
59
61
  sendResultsNotification(searchee, zipped, Label.SEARCH);
@@ -74,12 +76,24 @@ async function findMatchesBatch(samples, hashesToExclude) {
74
76
  }
75
77
  return totalFound;
76
78
  }
77
- export async function searchForLocalTorrentByCriteria(criteria, nonceOptions) {
78
- const meta = await getTorrentByCriteria(criteria);
79
+ export async function searchForLocalTorrentByCriteria(criteria) {
80
+ const { maxDataDepth } = getRuntimeConfig();
81
+ let searchees;
82
+ if (criteria.path) {
83
+ const searcheeResults = await Promise.all(findPotentialNestedRoots(criteria.path, maxDataDepth).map(createSearcheeFromPath));
84
+ searchees = searcheeResults.map((t) => t.unwrapOrThrow());
85
+ }
86
+ else {
87
+ searchees = [await getTorrentByCriteria(criteria)];
88
+ }
79
89
  const hashesToExclude = await getInfoHashesToExclude();
80
- if (!filterByContent(meta))
81
- return null;
82
- return findOnOtherSites(meta, hashesToExclude, nonceOptions);
90
+ let matches = 0;
91
+ for (let i = 0; i < searchees.length; i++) {
92
+ if (!filterByContent(searchees[i]))
93
+ return null;
94
+ matches += await findOnOtherSites(searchees[i], hashesToExclude);
95
+ }
96
+ return matches;
83
97
  }
84
98
  export async function checkNewCandidateMatch(candidate) {
85
99
  const meta = await getTorrentByFuzzyName(candidate.name);
@@ -100,38 +114,49 @@ export async function checkNewCandidateMatch(candidate) {
100
114
  .onConflict("name")
101
115
  .ignore();
102
116
  const assessment = await assessCandidate(candidate, searchee, hashesToExclude);
103
- if (assessment.decision !== Decision.MATCH)
117
+ if (assessment.decision !== Decision.MATCH &&
118
+ assessment.decision !== Decision.MATCH_SIZE_ONLY)
104
119
  return false;
105
- const result = await performAction(assessment.metafile, searchee, candidate.tracker, EmptyNonceOptions);
120
+ const result = await performAction(assessment.metafile, assessment.decision, searchee, candidate.tracker);
106
121
  await sendResultsNotification(searchee, [[assessment, candidate.tracker, result]], Label.REVERSE_LOOKUP);
107
122
  return result === InjectionResult.SUCCESS || result === SaveResult.SAVED;
108
123
  }
109
124
  async function findSearchableTorrents() {
110
- const { torrents } = getRuntimeConfig();
111
- let parsedTorrents;
125
+ const { torrents, dataDirs, torrentDir } = getRuntimeConfig();
126
+ let allSearchees = [];
112
127
  if (Array.isArray(torrents)) {
113
- const searcheeResults = await Promise.all(torrents.map(createSearcheeFromTorrentFile));
114
- parsedTorrents = searcheeResults
128
+ const searcheeResults = await Promise.all(torrents.map(createSearcheeFromTorrentFile) //also create searchee from path
129
+ );
130
+ allSearchees = searcheeResults
115
131
  .filter((t) => t.isOk())
116
132
  .map((t) => t.unwrapOrThrow());
117
133
  }
118
134
  else {
119
- parsedTorrents = await loadTorrentDirLight();
135
+ if (Array.isArray(dataDirs)) {
136
+ const searcheeResults = await Promise.all(findSearcheesFromAllDataDirs().map(createSearcheeFromPath));
137
+ allSearchees.push(...searcheeResults
138
+ .filter((t) => t.isOk())
139
+ .map((t) => t.unwrapOrThrow()));
140
+ }
141
+ if (typeof torrentDir === "string") {
142
+ allSearchees.push(...(await loadTorrentDirLight()));
143
+ }
120
144
  }
121
- const hashesToExclude = parsedTorrents
122
- .map((t) => t.infoHash)
123
- .filter(Boolean);
124
- const filteredTorrents = await filterAsync(filterDupes(parsedTorrents).filter(filterByContent), filterTimestamps);
145
+ const hashesToExclude = allSearchees.map((t) => t.infoHash).filter(Boolean);
146
+ const filteredTorrents = await filterAsync(filterDupes(allSearchees).filter(filterByContent), filterTimestamps);
125
147
  logger.info({
126
148
  label: Label.SEARCH,
127
- message: `Found ${parsedTorrents.length} torrents, ${filteredTorrents.length} suitable to search for matches`,
149
+ message: `Found ${allSearchees.length} torrents, ${filteredTorrents.length} suitable to search for matches`,
128
150
  });
129
151
  return { samples: filteredTorrents, hashesToExclude };
130
152
  }
131
153
  export async function main() {
132
- const { outputDir } = getRuntimeConfig();
154
+ const { outputDir, linkDir } = getRuntimeConfig();
133
155
  const { samples, hashesToExclude } = await findSearchableTorrents();
134
156
  fs.mkdirSync(outputDir, { recursive: true });
157
+ if (linkDir) {
158
+ fs.mkdirSync(linkDir, { recursive: true });
159
+ }
135
160
  const totalFound = await findMatchesBatch(samples, hashesToExclude);
136
161
  logger.info({
137
162
  label: Label.SEARCH,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/dist/preFilter.js CHANGED
@@ -1,12 +1,10 @@
1
- import { uniqBy } from "lodash-es";
2
1
  import ms from "ms";
3
- import path from "path";
4
- import { EP_REGEX, EXTENSIONS } from "./constants.js";
2
+ import { extname } from "path";
3
+ import { EP_REGEX, VIDEO_EXTENSIONS } from "./constants.js";
5
4
  import { db } from "./db.js";
6
5
  import { Label, logger } from "./logger.js";
7
6
  import { getRuntimeConfig } from "./runtimeConfig.js";
8
7
  import { humanReadable, nMsAgo } from "./utils.js";
9
- const extensionsWithDots = EXTENSIONS.map((e) => `.${e}`);
10
8
  export function filterByContent(searchee) {
11
9
  const { includeEpisodes, includeNonVideos } = getRuntimeConfig();
12
10
  function logReason(reason) {
@@ -20,7 +18,7 @@ export function filterByContent(searchee) {
20
18
  logReason("it is a single episode");
21
19
  return false;
22
20
  }
23
- const allFilesAreVideos = searchee.files.every((file) => extensionsWithDots.includes(path.extname(file.name)));
21
+ const allFilesAreVideos = searchee.files.every((file) => VIDEO_EXTENSIONS.includes(extname(file.name)));
24
22
  if (!includeNonVideos && !allFilesAreVideos) {
25
23
  logReason("not all files are videos");
26
24
  return false;
@@ -28,7 +26,17 @@ export function filterByContent(searchee) {
28
26
  return true;
29
27
  }
30
28
  export function filterDupes(searchees) {
31
- const filtered = uniqBy(searchees, "name");
29
+ const duplicateMap = searchees.reduce((acc, cur) => {
30
+ const entry = acc.get(cur.name);
31
+ if (entry === undefined) {
32
+ acc.set(cur.name, cur);
33
+ }
34
+ else if (cur.infoHash && !entry.infoHash) {
35
+ acc.set(cur.name, cur);
36
+ }
37
+ return acc;
38
+ }, new Map());
39
+ const filtered = Array.from(duplicateMap.values());
32
40
  const numDupes = searchees.length - filtered.length;
33
41
  if (numDupes > 0) {
34
42
  logger.verbose({
@@ -1 +1 @@
1
- {"version":3,"file":"preFilter.js","sourceRoot":"","sources":["../src/preFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preFilter.js","sourceRoot":"","sources":["../src/preFilter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- export const EmptyNonceOptions = {
2
- torznab: undefined,
3
- outputDir: undefined,
4
- };
5
1
  let runtimeConfig;
6
2
  export function setRuntimeConfig(configObj) {
7
3
  runtimeConfig = configObj;
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,aAAa,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"AAgCA,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,aAAa,CAAC;AACtB,CAAC"}
package/dist/searchee.js CHANGED
@@ -1,8 +1,26 @@
1
+ import { readdirSync, statSync } from "fs";
1
2
  import { sortBy } from "lodash-es";
2
- import { basename, sep as osSpecificPathSeparator } from "path";
3
- import { parseTorrentFromFilename } from "./torrent.js";
3
+ import { basename, join, relative, sep as osSpecificPathSeparator } from "path";
4
4
  import { logger } from "./logger.js";
5
5
  import { resultOf, resultOfErr } from "./Result.js";
6
+ import { parseTorrentFromFilename } from "./torrent.js";
7
+ function getFileNamesFromRootRec(root, isDirHint) {
8
+ const isDir = isDirHint !== undefined ? isDirHint : statSync(root).isDirectory();
9
+ if (isDir) {
10
+ return readdirSync(root, { withFileTypes: true }).flatMap((dirent) => getFileNamesFromRootRec(join(root, dirent.name), dirent.isDirectory()));
11
+ }
12
+ else {
13
+ return [root];
14
+ }
15
+ }
16
+ function getFilesFromDataRoot(rootPath) {
17
+ const parentDir = join(rootPath, "..");
18
+ return getFileNamesFromRootRec(rootPath).map((file) => ({
19
+ path: relative(parentDir, file),
20
+ name: basename(file),
21
+ length: statSync(file).size,
22
+ }));
23
+ }
6
24
  export function getFiles(meta) {
7
25
  if (!meta.info.files) {
8
26
  return [
@@ -47,4 +65,13 @@ export async function createSearcheeFromTorrentFile(filepath) {
47
65
  return resultOfErr(e);
48
66
  }
49
67
  }
68
+ export async function createSearcheeFromPath(filepath) {
69
+ const totalLength = getFilesFromDataRoot(filepath).reduce((runningTotal, file) => runningTotal + file.length, 0);
70
+ return resultOf({
71
+ files: getFilesFromDataRoot(filepath),
72
+ path: filepath,
73
+ name: basename(filepath),
74
+ length: totalLength,
75
+ });
76
+ }
50
77
  //# sourceMappingURL=searchee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchee.js","sourceRoot":"","sources":["../src/searchee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAU,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgB5D,MAAM,UAAU,QAAQ,CAAC,IAAc;IACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,OAAO;YACN;gBACC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB;SACD,CAAC;KACF;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,eAAe,GAAa,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAClE,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO;YACN,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,mDAAmD;YACnD,sDAAsD;YACtD,+CAA+C;YAC/C,wBAAwB;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;SAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACxD,OAAO;QACN,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,QAAgB;IAEhB,IAAI;QACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;KAClD;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;KACtB;AACF,CAAC"}
1
+ {"version":3,"file":"searchee.js","sourceRoot":"","sources":["../src/searchee.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -53,10 +53,9 @@ async function search(req, res) {
53
53
  res.end(e.message);
54
54
  return;
55
55
  }
56
- const criteria = pick(data, ["infoHash", "name"]);
57
- const nonceOptions = pick(data, ["outputDir"]);
58
- if (!("infoHash" in criteria || "name" in criteria)) {
59
- const message = "A name or info hash must be provided";
56
+ const criteria = pick(data, ["infoHash", "name", "path"]);
57
+ if (!("infoHash" in criteria || "name" in criteria || "path" in criteria)) {
58
+ const message = "A name, info hash, or path must be provided";
60
59
  logger.error({ label: Label.SERVER, message });
61
60
  res.writeHead(400);
62
61
  res.end(message);
@@ -73,7 +72,7 @@ async function search(req, res) {
73
72
  try {
74
73
  let numFound = null;
75
74
  if (criteria) {
76
- numFound = await searchForLocalTorrentByCriteria(criteria, nonceOptions);
75
+ numFound = await searchForLocalTorrentByCriteria(criteria);
77
76
  }
78
77
  if (numFound === null) {
79
78
  logger.info({
@@ -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":"AAAA,OAAO,IAAyC,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAEN,sBAAsB,EACtB,+BAA+B,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAkB,MAAM,cAAc,CAAC;AAEhE,SAAS,OAAO,CAAC,GAAG;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAI;IACtB,IAAI,MAAM,CAAC;IACX,IAAI;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,kBAAkB;IAClB,IAAI;QACH,IAAI,UAAU,IAAI,MAAM,EAAE;YACzB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SAChD;QACD,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClC;KACD;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAC;KAC3D;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,KAAK,UAAU,MAAM,CACpB,GAAoB,EACpB,GAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC;IACT,IAAI;QACH,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,CAAC,CAAC,OAAO;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO;KACP;IACD,MAAM,QAAQ,GAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC,EAAE;QAC1E,MAAM,OAAO,GAAG,6CAA6C,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO;KACP;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,EAAE,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,OAAO,EAAE,4BAA4B,WAAW,EAAE;KAClD,CAAC,CAAC;IAEH,MAAM,gBAAgB,EAAE,CAAC;IAEzB,IAAI;QACH,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,QAAQ,EAAE;YACb,QAAQ,GAAG,MAAM,+BAA+B,CAAC,QAAQ,CAAC,CAAC;SAC3D;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,OAAO,EAAE,sBAAsB,WAAW,EAAE;aAC5C,CAAC,CAAC;SACH;aAAM;YACN,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,OAAO,EAAE,SAAS,QAAQ,iBAAiB,WAAW,EAAE;aACxD,CAAC,CAAC;SACH;KACD;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAChB;AACF,CAAC;AAED,KAAK,UAAU,QAAQ,CACtB,GAAoB,EACpB,GAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC;IACT,IAAI;QACH,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,CAAC,CAAC,OAAO;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO;KACP;IAED,IACC,CAAC,CACA,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,IAAI;QACd,MAAM,IAAI,IAAI;QACd,SAAS,IAAI,IAAI,CACjB,EACA;QACD,MAAM,OAAO,GAAG,sDAAsD,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO;SACP,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO;KACP;IAED,MAAM,CAAC,OAAO,CAAC;QACd,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,OAAO,EAAE,sBAAsB,IAAI,CAAC,IAAI,EAAE;KAC1C,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAiB,CAAC;IACpC,IAAI;QACH,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE;YACZ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;SACP;QACD,MAAM,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,uBAAuB,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE;SACtE,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;KAChC;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACnB;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAC3B,GAAoB,EACpB,GAAmB;IAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;QAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACjC,OAAO;KACP;IAED,QAAQ,GAAG,CAAC,GAAG,EAAE;QAChB,KAAK,cAAc,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC;gBACd,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,OAAO,EAAE,mBAAmB;aAC5B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACxB;QAED,KAAK,eAAe,CAAC,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC;gBACd,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,OAAO,EAAE,oBAAoB;aAC7B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC1B;QACD,OAAO,CAAC,CAAC;YACR,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9B,OAAO;SACP;KACD;AACF,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,IAAwB;IAC3D,IAAI,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,6BAA6B,IAAI,eAAe;SACzD,CAAC,CAAC;KACH;AACF,CAAC"}
package/dist/startup.js CHANGED
@@ -1,15 +1,22 @@
1
1
  import { getClient } from "./clients/TorrentClient.js";
2
+ import { MatchMode } from "./constants.js";
2
3
  import { CrossSeedError } from "./errors.js";
3
4
  import { logger } from "./logger.js";
4
5
  import { getRuntimeConfig } from "./runtimeConfig.js";
5
6
  import { validateTorrentDir } from "./torrent.js";
6
7
  import { validateTorznabUrls } from "./torznab.js";
7
8
  function validateOptions() {
8
- const { action, rtorrentRpcUrl, qbittorrentUrl, transmissionRpcUrl } = getRuntimeConfig();
9
+ const { action, rtorrentRpcUrl, qbittorrentUrl, transmissionRpcUrl, dataDirs, linkDir, matchMode, skipRecheck, } = getRuntimeConfig();
9
10
  if (action === "inject" &&
10
11
  !(rtorrentRpcUrl || qbittorrentUrl || transmissionRpcUrl)) {
11
12
  throw new CrossSeedError("You need to specify --rtorrent-rpc-url, --transmission-rpc-url, or --qbittorrent-url when using '-A inject'.");
12
13
  }
14
+ if ((dataDirs && !linkDir) || (!dataDirs && linkDir)) {
15
+ throw new CrossSeedError("Data based matching requries both --link-dir and --data-dirs");
16
+ }
17
+ if (matchMode == MatchMode.RISKY && skipRecheck) {
18
+ logger.warn("It is strongly recommended to not skip rechecking for risky matching mode");
19
+ }
13
20
  }
14
21
  export async function doStartupValidation() {
15
22
  logger.info("Validating your configuration...");