cross-seed 2.9.3 → 3.0.3

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 (91) hide show
  1. package/README.md +2 -1
  2. package/dist/{src/clients → clients}/QBittorrent.js +31 -37
  3. package/dist/clients/QBittorrent.js.map +1 -0
  4. package/dist/{src/clients → clients}/RTorrent.js +45 -48
  5. package/dist/clients/RTorrent.js.map +1 -0
  6. package/dist/clients/TorrentClient.js +20 -0
  7. package/dist/clients/TorrentClient.js.map +1 -0
  8. package/dist/cmd.js +148 -0
  9. package/dist/cmd.js.map +1 -0
  10. package/dist/{src/config.template.js → config.template.cjs} +4 -2
  11. package/dist/config.template.cjs.map +1 -0
  12. package/dist/{src/config.template.docker.js → config.template.docker.cjs} +4 -3
  13. package/dist/config.template.docker.cjs.map +1 -0
  14. package/dist/configuration.js +39 -0
  15. package/dist/configuration.js.map +1 -0
  16. package/dist/constants.js +33 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/db.js +29 -0
  19. package/dist/db.js.map +1 -0
  20. package/dist/decide.js +142 -0
  21. package/dist/decide.js.map +1 -0
  22. package/dist/diff.js +23 -0
  23. package/dist/diff.js.map +1 -0
  24. package/dist/errors.js +11 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/jackett.js +68 -0
  27. package/dist/jackett.js.map +1 -0
  28. package/dist/logger.js +88 -0
  29. package/dist/logger.js.map +1 -0
  30. package/dist/pipeline.js +134 -0
  31. package/dist/pipeline.js.map +1 -0
  32. package/dist/preFilter.js +66 -0
  33. package/dist/preFilter.js.map +1 -0
  34. package/dist/pushNotifier.js +27 -0
  35. package/dist/pushNotifier.js.map +1 -0
  36. package/dist/runtimeConfig.js +12 -0
  37. package/dist/runtimeConfig.js.map +1 -0
  38. package/dist/searchee.js +52 -0
  39. package/dist/searchee.js.map +1 -0
  40. package/dist/{src/server.js → server.js} +23 -30
  41. package/dist/server.js.map +1 -0
  42. package/dist/{src/signalHandlers.js → signalHandlers.js} +0 -0
  43. package/dist/signalHandlers.js.map +1 -0
  44. package/dist/startup.js +24 -0
  45. package/dist/startup.js.map +1 -0
  46. package/dist/torrent.js +128 -0
  47. package/dist/torrent.js.map +1 -0
  48. package/dist/utils.js +28 -0
  49. package/dist/utils.js.map +1 -0
  50. package/package.json +22 -25
  51. package/dist/package.json +0 -68
  52. package/dist/src/clients/QBittorrent.js.map +0 -1
  53. package/dist/src/clients/RTorrent.js.map +0 -1
  54. package/dist/src/clients/TorrentClient.js +0 -27
  55. package/dist/src/clients/TorrentClient.js.map +0 -1
  56. package/dist/src/cmd.js +0 -137
  57. package/dist/src/cmd.js.map +0 -1
  58. package/dist/src/config.template.docker.js.map +0 -1
  59. package/dist/src/config.template.js.map +0 -1
  60. package/dist/src/configuration.js +0 -66
  61. package/dist/src/configuration.js.map +0 -1
  62. package/dist/src/constants.js +0 -39
  63. package/dist/src/constants.js.map +0 -1
  64. package/dist/src/db.js +0 -34
  65. package/dist/src/db.js.map +0 -1
  66. package/dist/src/decide.js +0 -143
  67. package/dist/src/decide.js.map +0 -1
  68. package/dist/src/errors.js +0 -15
  69. package/dist/src/errors.js.map +0 -1
  70. package/dist/src/jackett.js +0 -76
  71. package/dist/src/jackett.js.map +0 -1
  72. package/dist/src/logger.js +0 -78
  73. package/dist/src/logger.js.map +0 -1
  74. package/dist/src/pipeline.js +0 -140
  75. package/dist/src/pipeline.js.map +0 -1
  76. package/dist/src/preFilter.js +0 -77
  77. package/dist/src/preFilter.js.map +0 -1
  78. package/dist/src/pushNotifier.js +0 -35
  79. package/dist/src/pushNotifier.js.map +0 -1
  80. package/dist/src/runtimeConfig.js +0 -17
  81. package/dist/src/runtimeConfig.js.map +0 -1
  82. package/dist/src/searchee.js +0 -72
  83. package/dist/src/searchee.js.map +0 -1
  84. package/dist/src/server.js.map +0 -1
  85. package/dist/src/signalHandlers.js.map +0 -1
  86. package/dist/src/startup.js +0 -28
  87. package/dist/src/startup.js.map +0 -1
  88. package/dist/src/torrent.js +0 -169
  89. package/dist/src/torrent.js.map +0 -1
  90. package/dist/src/utils.js +0 -39
  91. package/dist/src/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"QBittorrent.js","sourceRoot":"","sources":["../../../src/clients/QBittorrent.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RTorrent.js","sourceRoot":"","sources":["../../../src/clients/RTorrent.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,2BAA2C;AAC3C,kEAAoE;AACpE,+BAAwC;AACxC,+BAA+B;AAC/B,oDAAwC;AACxC,4CAA+C;AAC/C,sCAA2C;AAC3C,sCAA0C;AAC1C,oDAAkE;AAElE,oCAAgC;AAchC,KAAK,UAAU,0BAA0B,CACxC,IAAc,EACd,OAAe;IAEf,KAAK,UAAU,iBAAiB,CAC/B,IAAiB;QAEjB,MAAM,QAAQ,GAAG,cAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,aAAE;aACvB,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAY,CAAA,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YACxD,eAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,cAAK,CAAC,QAAQ;gBACrB,OAAO,EAAE,QAAQ,QAAQ,6CAA6C;aACtE,CAAC,CAAC;YACH,OAAO;gBACN,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,CAAC;aACX,CAAC;SACF;QAED,OAAO;YACN,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1C,QAAQ,EAAE,CAAC;SACX,CAAC;IACH,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QACnD,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACjC;KACD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACtC,IAAc,EACd,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,iBAAO,CAAC,MAAM,CAAC,uBAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAqB,QAAQ;IAE5B;QACC,MAAM,EAAE,cAAc,EAAE,GAAG,gCAAgB,EAAE,CAAC;QAE9C,IAAI;YACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CACjE,cAAc,CACd,CAAC;YAEF,MAAM,aAAa,GAClB,QAAQ,KAAK,QAAQ;gBACpB,CAAC,CAAC,gBAAM,CAAC,kBAAkB;gBAC3B,CAAC,CAAC,gBAAM,CAAC,YAAY,CAAC;YAExB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;YAEpD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC3B,GAAG,EAAE,MAAM,GAAG,QAAQ;gBACtB,UAAU,EAAE,aAAa;oBACxB,CAAC,CAAC;wBACA,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC;wBAClC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC;qBACjC;oBACH,CAAC,CAAC,SAAS;aACZ,CAAC,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,IAAI,uBAAc,CAAC,sCAAsC,CAAC,CAAC;SACjE;IACF,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,MAAc,EAAE,IAAI;QAChD,eAAM,CAAC,OAAO,CAAC;YACd,KAAK,EAAE,cAAK,CAAC,QAAQ;YACrB,OAAO,EAAE,kBAAkB,MAAM,gBAAgB,cAAO,CAAC,IAAI,CAAC,EAAE;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAClD,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,QAAgB;QAC9C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAC1C,eAAe,EACf,EAAE,CACF,CAAC;QACF,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC5B,QAAkB;QAElB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACvB,MAAM,IAAI,uBAAc,CACvB,oEAAoE,CACpE,CAAC;SACF;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAa,kBAAkB,EAAE;YACrE;gBACC;oBACC,UAAU,EAAE,iBAAiB;oBAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC;iBAClB;gBACD;oBACC,UAAU,EAAE,aAAa;oBACzB,MAAM,EAAE,CAAC,QAAQ,CAAC;iBAClB;gBACD;oBACC,UAAU,EAAE,YAAY;oBACxB,MAAM,EAAE,CAAC,QAAQ,CAAC;iBAClB;aACD;SACD,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAI;YACH,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;YAC1D,OAAO;gBACN,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;gBACpD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC1C,CAAC;SACF;QAAC,OAAO,CAAC,EAAE;YACX,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,eAAM,CAAC,KAAK,CAAC,cAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9B;IACF,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,MAAM,EAAE,cAAc,EAAE,GAAG,gCAAgB,EAAE,CAAC;QAC9C,sBAAsB;QACtB,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,IAAI;YACH,MAAM,IAAI,CAAC,WAAW,CAAW,eAAe,EAAE,EAAE,CAAC,CAAC;SACtD;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,IAAI,uBAAc,CACvB,+BAA+B,cAAc,EAAE,CAC/C,CAAC;SACF;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,IAAc,EACd,QAAkB,EAClB,YAA0B;QAE1B,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,gCAAgB,EAAE,CAAC;QACjE,MAAM,EAAE,SAAS,GAAG,sBAAsB,EAAE,GAAG,YAAY,CAAC;QAE5D,IAAI,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvD,OAAO,2BAAe,CAAC,cAAc,CAAC;SACtC;QAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACjE,QAAQ,CACR,CAAC;QAEF,IAAI,CAAC,UAAU;YAAE,OAAO,2BAAe,CAAC,oBAAoB,CAAC;QAE7D,MAAM,eAAe,GAAG,cAAO,CAC9B,SAAS,EACT,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,UAAU,CACxC,CAAC;QACF,MAAM,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI;gBACH,MAAM,IAAI,CAAC,WAAW,CAAO,YAAY,EAAE;oBAC1C,EAAE;oBACF,eAAe;oBACf,oBAAoB,OAAO,GAAG;oBAC9B,4BAA4B;oBAC5B,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;iBACvD,CAAC,CAAC;gBACH,MAAM;aACN;YAAC,OAAO,CAAC,EAAE;gBACX,MAAM,YAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAClC;SACD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACvD,UAAU,CAAC,GAAG,EAAE,CAAC,aAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;gBACnD,OAAO,2BAAe,CAAC,OAAO,CAAC;aAC/B;YACD,MAAM,YAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACjC;QACD,UAAU,CAAC,GAAG,EAAE,CAAC,aAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,2BAAe,CAAC,OAAO,CAAC;IAChC,CAAC;CACD;AA5JD,2BA4JC"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getClient = void 0;
7
- const runtimeConfig_1 = require("../runtimeConfig");
8
- const QBittorrent_1 = __importDefault(require("./QBittorrent"));
9
- const RTorrent_1 = __importDefault(require("./RTorrent"));
10
- let activeClient;
11
- function instantiateDownloadClient() {
12
- const { rtorrentRpcUrl, qbittorrentUrl } = runtimeConfig_1.getRuntimeConfig();
13
- if (rtorrentRpcUrl) {
14
- activeClient = new RTorrent_1.default();
15
- }
16
- else if (qbittorrentUrl) {
17
- activeClient = new QBittorrent_1.default();
18
- }
19
- }
20
- function getClient() {
21
- if (!activeClient) {
22
- instantiateDownloadClient();
23
- }
24
- return activeClient;
25
- }
26
- exports.getClient = getClient;
27
- //# sourceMappingURL=TorrentClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TorrentClient.js","sourceRoot":"","sources":["../../../src/clients/TorrentClient.ts"],"names":[],"mappings":";;;;;;AAEA,oDAAkE;AAElE,gEAAwC;AACxC,0DAAkC;AAElC,IAAI,YAA2B,CAAC;AAWhC,SAAS,yBAAyB;IACjC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,gCAAgB,EAAE,CAAC;IAC9D,IAAI,cAAc,EAAE;QACnB,YAAY,GAAG,IAAI,kBAAQ,EAAE,CAAC;KAC9B;SAAM,IAAI,cAAc,EAAE;QAC1B,YAAY,GAAG,IAAI,qBAAW,EAAE,CAAC;KACjC;AACF,CAAC;AAED,SAAgB,SAAS;IACxB,IAAI,CAAC,YAAY,EAAE;QAClB,yBAAyB,EAAE,CAAC;KAC5B;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AALD,8BAKC"}
package/dist/src/cmd.js DELETED
@@ -1,137 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const commander_1 = require("commander");
9
- const package_json_1 = __importDefault(require("../package.json"));
10
- const configuration_1 = require("./configuration");
11
- const constants_1 = require("./constants");
12
- const db_1 = require("./db");
13
- const errors_1 = require("./errors");
14
- const logger_1 = require("./logger");
15
- const pipeline_1 = require("./pipeline");
16
- const pushNotifier_1 = require("./pushNotifier");
17
- const runtimeConfig_1 = require("./runtimeConfig");
18
- const server_1 = require("./server");
19
- const util_1 = require("util");
20
- require("./signalHandlers");
21
- const startup_1 = require("./startup");
22
- function fallback(...args) {
23
- for (const arg of args) {
24
- if (arg !== undefined)
25
- return arg;
26
- }
27
- return undefined;
28
- }
29
- function processOptions(options) {
30
- var _a;
31
- options.trackers = (_a = options.trackers) === null || _a === void 0 ? void 0 : _a.split(",").filter((e) => e !== "");
32
- return options;
33
- }
34
- async function run() {
35
- const fileConfig = configuration_1.getFileConfig();
36
- function createCommandWithSharedOptions(name, description) {
37
- var _a;
38
- return commander_1.program
39
- .command(name)
40
- .description(description)
41
- .requiredOption("-u, --jackett-server-url <url>", "Your Jackett server url", fileConfig.jackettServerUrl)
42
- .requiredOption("-k, --jackett-api-key <key>", "Your Jackett API key", fileConfig.jackettApiKey)
43
- .requiredOption("-t, --trackers <tracker1>,<tracker2>", "Comma-separated list of Jackett tracker ids to search (Tracker ids can be found in their Torznab feed paths)", fallback((_a = fileConfig.trackers) === null || _a === void 0 ? void 0 : _a.join(","), ""))
44
- .requiredOption("-i, --torrent-dir <dir>", "Directory with torrent files", fileConfig.torrentDir)
45
- .requiredOption("-s, --output-dir <dir>", "Directory to save results in", fileConfig.outputDir)
46
- .requiredOption("-a, --search-all", "Search for all torrents regardless of their contents", fallback(fileConfig.searchAll, false))
47
- .option("-x, --exclude-older <cutoff>", "Exclude torrents first seen more than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeOlder)
48
- .option("-r, --exclude-recent-search <cutoff>", "Exclude torrents which have been searched more recently than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeRecentSearch)
49
- .requiredOption("-v, --verbose", "Log verbose output", false)
50
- .addOption(new commander_1.Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
51
- .default(fallback(fileConfig.action, constants_1.Action.SAVE))
52
- .choices(Object.values(constants_1.Action))
53
- .makeOptionMandatory())
54
- .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.rtorrentRpcUrl)
55
- .option("--qbittorrent-url <url>", "The url of your qBittorrent webui. Requires '-A inject'. See the docs for more information.", fileConfig.qbittorrentUrl)
56
- .option("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl);
57
- }
58
- commander_1.program.name(package_json_1.default.name);
59
- commander_1.program.description(chalk_1.default.yellow.bold("cross-seed"));
60
- commander_1.program.version(package_json_1.default.version, "-V, --version", "output the current version");
61
- commander_1.program
62
- .command("gen-config")
63
- .description("Generate a config file")
64
- .option("-d, --docker", "Generate the docker config instead of the normal one")
65
- .action((options) => {
66
- configuration_1.generateConfig(options);
67
- });
68
- commander_1.program
69
- .command("clear-cache")
70
- .description("Clear the cache of downloaded-and-rejected torrents")
71
- .action(db_1.dropDatabase);
72
- createCommandWithSharedOptions("daemon", "Start the cross-seed daemon").action(async (options) => {
73
- try {
74
- const runtimeConfig = processOptions(options);
75
- runtimeConfig_1.setRuntimeConfig(runtimeConfig);
76
- logger_1.initializeLogger();
77
- pushNotifier_1.initializePushNotifier();
78
- logger_1.logger.verbose({
79
- label: logger_1.Label.CONFIGDUMP,
80
- message: util_1.inspect(runtimeConfig),
81
- });
82
- if (process.env.DOCKER_ENV === "true") {
83
- configuration_1.generateConfig({ docker: true });
84
- }
85
- await startup_1.doStartupValidation();
86
- await server_1.serve();
87
- }
88
- catch (e) {
89
- if (e instanceof errors_1.CrossSeedError) {
90
- e.print();
91
- process.exitCode = 1;
92
- return;
93
- }
94
- throw e;
95
- }
96
- });
97
- commander_1.program
98
- .command("test-notification")
99
- .description("Send a test notification")
100
- .requiredOption("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl)
101
- .action((options) => {
102
- const runtimeConfig = processOptions(options);
103
- runtimeConfig_1.setRuntimeConfig(runtimeConfig);
104
- logger_1.initializeLogger();
105
- pushNotifier_1.initializePushNotifier();
106
- pushNotifier_1.sendTestNotification();
107
- });
108
- createCommandWithSharedOptions("search", "Search for cross-seeds")
109
- .requiredOption("-o, --offset <offset>", "Offset to start from", (n) => parseInt(n), 0)
110
- .requiredOption("-d, --delay <delay>", "Pause duration (seconds) between searches", parseFloat, fallback(fileConfig.delay, 10))
111
- .option("-e, --include-episodes", "Include single-episode torrents in the search", fallback(fileConfig.includeEpisodes, false))
112
- .action(async (options) => {
113
- try {
114
- const runtimeConfig = processOptions(options);
115
- runtimeConfig_1.setRuntimeConfig(runtimeConfig);
116
- logger_1.initializeLogger();
117
- pushNotifier_1.initializePushNotifier();
118
- logger_1.logger.verbose({
119
- label: logger_1.Label.CONFIGDUMP,
120
- message: util_1.inspect(runtimeConfig),
121
- });
122
- await startup_1.doStartupValidation();
123
- await pipeline_1.main();
124
- }
125
- catch (e) {
126
- if (e instanceof errors_1.CrossSeedError) {
127
- e.print();
128
- process.exitCode = 1;
129
- return;
130
- }
131
- throw e;
132
- }
133
- });
134
- await commander_1.program.parseAsync();
135
- }
136
- run();
137
- //# sourceMappingURL=cmd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.template.docker.js","sourceRoot":"","sources":["../../src/config.template.docker.js"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,gBAAgB,EAAE,6BAA6B;IAC/C,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,gCAAgC;IAChC,2DAA2D;IAC3D,UAAU,EAAE,WAAW;IAEvB,gEAAgE;IAChE,gCAAgC;IAChC,2DAA2D;IAC3D,SAAS,EAAE,cAAc;IAEzB,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.template.js","sourceRoot":"","sources":["../../src/config.template.js"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,aAAa,EAAE,CAAC;IAEhB,gBAAgB,EAAE,+BAA+B;IACjD,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,UAAU,EAAE,2BAA2B;IAEvC,gEAAgE;IAChE,SAAS,EAAE,GAAG;IAEd,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getFileConfig = exports.generateConfig = exports.createAppDir = exports.appDir = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const package_json_1 = __importDefault(require("../package.json"));
11
- const config_template_1 = __importDefault(require("./config.template"));
12
- const constants_1 = require("./constants");
13
- function appDir() {
14
- return (process.env.CONFIG_DIR ||
15
- (process.platform === "win32"
16
- ? path_1.default.resolve(process.env.LOCALAPPDATA, package_json_1.default.name)
17
- : path_1.default.resolve(process.env.HOME, `.${package_json_1.default.name}`)));
18
- }
19
- exports.appDir = appDir;
20
- function createAppDir() {
21
- fs_1.default.mkdirSync(path_1.default.join(appDir(), "torrent_cache"), { recursive: true });
22
- fs_1.default.mkdirSync(path_1.default.join(appDir(), "logs"), { recursive: true });
23
- }
24
- exports.createAppDir = createAppDir;
25
- function generateConfig({ force = false, docker = false, }) {
26
- createAppDir();
27
- const dest = path_1.default.join(appDir(), "config.js");
28
- const templatePath = path_1.default.join(__dirname, `config.template${docker ? ".docker" : ""}.js`);
29
- if (!force && fs_1.default.existsSync(dest)) {
30
- console.log("Configuration file already exists.");
31
- return;
32
- }
33
- fs_1.default.copyFileSync(templatePath, dest);
34
- console.log("Configuration file created at", chalk_1.default.yellow.bold(dest));
35
- }
36
- exports.generateConfig = generateConfig;
37
- function printUpdateInstructions(missingKeys) {
38
- const configPath = path_1.default.join(appDir(), "config.js");
39
- console.error(chalk_1.default.yellow `
40
- Error: Your configuration file is out of date.
41
- Missing options:\n\t${missingKeys.join("\n\t")}
42
- Please update at ${configPath}.
43
- When you are done, set the configVersion to ${config_template_1.default.configVersion}.
44
- It may help to read the template, at ${constants_1.CONFIG_TEMPLATE_URL}
45
- `);
46
- }
47
- function getFileConfig() {
48
- const configPath = path_1.default.join(appDir(), "config.js");
49
- try {
50
- // eslint-disable-next-line @typescript-eslint/no-var-requires
51
- const fileConfig = require(configPath);
52
- const { configVersion = 0 } = fileConfig;
53
- if (configVersion < configVersion) {
54
- const missingKeys = Object.keys(config_template_1.default).filter((k) => !(k in fileConfig));
55
- printUpdateInstructions(missingKeys);
56
- }
57
- return fileConfig;
58
- }
59
- catch (e) {
60
- if (e.code !== "MODULE_NOT_FOUND")
61
- throw e;
62
- return {};
63
- }
64
- }
65
- exports.getFileConfig = getFileConfig;
66
- //# sourceMappingURL=configuration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/configuration.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermanentDecisions = exports.Decision = exports.InjectionResult = exports.Action = exports.TORRENT_CACHE_FOLDER = exports.INDEXED_TORRENTS = exports.DECISIONS = exports.SEARCHEES = exports.CONFIG_TEMPLATE_URL = exports.EXTENSIONS = exports.MOVIE_REGEX = exports.SEASON_REGEX = exports.EP_REGEX = void 0;
4
- exports.EP_REGEX = /^(?<title>.+)[. ](?<season>S\d+)(?<episode>E\d+)/i;
5
- exports.SEASON_REGEX = /^(?<title>.+)[. ](?<season>S\d+)(?:\s?-\s?(?<seasonmax>S?\d+))?(?!E\d+)/i;
6
- exports.MOVIE_REGEX = /^(?<title>.+)[. ][[(]?(?<year>\d{4})[)\]]?(?![pi])/i;
7
- exports.EXTENSIONS = ["mkv", "mp4", "avi"];
8
- exports.CONFIG_TEMPLATE_URL = "https://github.com/mmgoodnow/cross-seed/blob/master/src/config.template.js";
9
- exports.SEARCHEES = "searchees";
10
- exports.DECISIONS = "decisions";
11
- exports.INDEXED_TORRENTS = "indexedTorrents";
12
- exports.TORRENT_CACHE_FOLDER = "torrent_cache";
13
- var Action;
14
- (function (Action) {
15
- Action["SAVE"] = "save";
16
- Action["INJECT"] = "inject";
17
- })(Action = exports.Action || (exports.Action = {}));
18
- var InjectionResult;
19
- (function (InjectionResult) {
20
- InjectionResult[InjectionResult["SUCCESS"] = 0] = "SUCCESS";
21
- InjectionResult[InjectionResult["FAILURE"] = 1] = "FAILURE";
22
- InjectionResult[InjectionResult["ALREADY_EXISTS"] = 2] = "ALREADY_EXISTS";
23
- InjectionResult[InjectionResult["TORRENT_NOT_COMPLETE"] = 3] = "TORRENT_NOT_COMPLETE";
24
- })(InjectionResult = exports.InjectionResult || (exports.InjectionResult = {}));
25
- var Decision;
26
- (function (Decision) {
27
- Decision["MATCH"] = "MATCH";
28
- Decision["SIZE_MISMATCH"] = "SIZE_MISMATCH";
29
- Decision["NO_DOWNLOAD_LINK"] = "NO_DOWNLOAD_LINK";
30
- Decision["DOWNLOAD_FAILED"] = "DOWNLOAD_FAILED";
31
- Decision["INFO_HASH_ALREADY_EXISTS"] = "INFO_HASH_ALREADY_EXISTS";
32
- Decision["FILE_TREE_MISMATCH"] = "FILE_TREE_MISMATCH";
33
- })(Decision = exports.Decision || (exports.Decision = {}));
34
- exports.PermanentDecisions = [
35
- Decision.SIZE_MISMATCH,
36
- Decision.NO_DOWNLOAD_LINK,
37
- Decision.FILE_TREE_MISMATCH,
38
- ];
39
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,mDAAmD,CAAC;AAC/D,QAAA,YAAY,GAAG,0EAA0E,CAAC;AAC1F,QAAA,WAAW,GAAG,qDAAqD,CAAC;AAEpE,QAAA,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEnC,QAAA,mBAAmB,GAC/B,4EAA4E,CAAC;AAEjE,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AAErC,QAAA,oBAAoB,GAAG,eAAe,CAAC;AAEpD,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,GAAN,cAAM,KAAN,cAAM,QAGjB;AAED,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,yEAAc,CAAA;IACd,qFAAoB,CAAA;AACrB,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AAED,IAAY,QAOX;AAPD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,2CAA+B,CAAA;IAC/B,iDAAqC,CAAA;IACrC,+CAAmC,CAAA;IACnC,iEAAqD,CAAA;IACrD,qDAAyC,CAAA;AAC1C,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAEY,QAAA,kBAAkB,GAAe;IAC7C,QAAQ,CAAC,aAAa;IACtB,QAAQ,CAAC,gBAAgB;IACzB,QAAQ,CAAC,kBAAkB;CAC3B,CAAC"}
package/dist/src/db.js DELETED
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.dropDatabase = void 0;
7
- const rimraf_1 = require("rimraf");
8
- const lowdb_1 = __importDefault(require("lowdb"));
9
- const FileSync_1 = __importDefault(require("lowdb/adapters/FileSync"));
10
- const path_1 = __importDefault(require("path"));
11
- const configuration_1 = require("./configuration");
12
- const constants_1 = require("./constants");
13
- const fs_1 = require("fs");
14
- configuration_1.createAppDir();
15
- const db = lowdb_1.default(new FileSync_1.default(path_1.default.join(configuration_1.appDir(), "cache.json")));
16
- const emptyDatabase = {
17
- [constants_1.SEARCHEES]: {},
18
- [constants_1.DECISIONS]: {},
19
- [constants_1.INDEXED_TORRENTS]: [],
20
- dbVersion: 3,
21
- };
22
- const dbVersion = db.get("dbVersion").value();
23
- if (!dbVersion || dbVersion < emptyDatabase.dbVersion) {
24
- db.setState(emptyDatabase);
25
- }
26
- db.defaults(emptyDatabase).write();
27
- function dropDatabase() {
28
- db.setState(emptyDatabase).write();
29
- fs_1.unlinkSync(path_1.default.join(configuration_1.appDir(), "cache.json"));
30
- rimraf_1.sync(path_1.default.join(configuration_1.appDir(), "torrent_cache"));
31
- }
32
- exports.dropDatabase = dropDatabase;
33
- exports.default = db;
34
- //# sourceMappingURL=db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA4C;AAC5C,kDAA0B;AAC1B,uEAA+C;AAC/C,gDAAwB;AACxB,mDAAuD;AACvD,2CAA+E;AAC/E,2BAAgC;AAEhC,4BAAY,EAAE,CAAC;AA4Bf,MAAM,EAAE,GAAG,eAAK,CAAC,IAAI,kBAAQ,CAAS,cAAI,CAAC,IAAI,CAAC,sBAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAE1E,MAAM,aAAa,GAAG;IACrB,CAAC,qBAAS,CAAC,EAAE,EAAE;IACf,CAAC,qBAAS,CAAC,EAAE,EAAE;IACf,CAAC,4BAAgB,CAAC,EAAE,EAAE;IACtB,SAAS,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;AAE9C,IAAI,CAAC,SAAS,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE;IACtD,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;CAC3B;AAED,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;AAEnC,SAAgB,YAAY;IAC3B,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IACnC,eAAU,CAAC,cAAI,CAAC,IAAI,CAAC,sBAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9C,aAAU,CAAC,cAAI,CAAC,IAAI,CAAC,sBAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AAClD,CAAC;AAJD,oCAIC;AAED,kBAAe,EAAE,CAAC"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.assessResult = void 0;
7
- const fs_1 = require("fs");
8
- const parse_torrent_1 = __importDefault(require("parse-torrent"));
9
- const path_1 = __importDefault(require("path"));
10
- const configuration_1 = require("./configuration");
11
- const constants_1 = require("./constants");
12
- const db_1 = __importDefault(require("./db"));
13
- const logger_1 = require("./logger");
14
- const torrent_1 = require("./torrent");
15
- const createReasonLogger = (Title, tracker, name) => (decision, cached) => {
16
- function logReason(reason) {
17
- logger_1.logger.verbose({
18
- label: logger_1.Label.DECIDE,
19
- message: `${name} - no match for ${tracker} torrent ${Title} - ${reason}`,
20
- });
21
- }
22
- let reason;
23
- switch (decision) {
24
- case constants_1.Decision.MATCH:
25
- return;
26
- case constants_1.Decision.SIZE_MISMATCH:
27
- reason = "its size does not match";
28
- break;
29
- case constants_1.Decision.NO_DOWNLOAD_LINK:
30
- reason = "it doesn't have a download link";
31
- break;
32
- case constants_1.Decision.DOWNLOAD_FAILED:
33
- reason = "the torrent file failed to download";
34
- break;
35
- case constants_1.Decision.INFO_HASH_ALREADY_EXISTS:
36
- reason = "the info hash matches a torrent you already have";
37
- break;
38
- case constants_1.Decision.FILE_TREE_MISMATCH:
39
- reason = "it has a different file tree";
40
- break;
41
- default:
42
- reason = decision;
43
- break;
44
- }
45
- if (cached)
46
- logReason(`${reason} (cached)`);
47
- else
48
- logReason(reason);
49
- };
50
- function compareFileTrees(candidate, searchee) {
51
- const cmp = (elOfA, elOfB) => {
52
- const lengthsAreEqual = elOfB.length === elOfA.length;
53
- const pathsAreEqual = elOfB.path === elOfA.path;
54
- return lengthsAreEqual && pathsAreEqual;
55
- };
56
- return candidate.files.every((elOfA) => searchee.files.some((elOfB) => cmp(elOfA, elOfB)));
57
- }
58
- function sizeDoesMatch(resultSize, searchee) {
59
- const { length } = searchee;
60
- const lowerBound = length - 0.02 * length;
61
- const upperBound = length + 0.02 * length;
62
- return resultSize >= lowerBound && resultSize <= upperBound;
63
- }
64
- async function assessResultHelper({ Link, Size }, searchee, hashesToExclude) {
65
- if (!sizeDoesMatch(Size, searchee)) {
66
- return { decision: constants_1.Decision.SIZE_MISMATCH };
67
- }
68
- if (!Link)
69
- return { decision: constants_1.Decision.NO_DOWNLOAD_LINK };
70
- const info = await torrent_1.parseTorrentFromURL(Link);
71
- if (!info)
72
- return { decision: constants_1.Decision.DOWNLOAD_FAILED };
73
- if (hashesToExclude.includes(info.infoHash)) {
74
- return { decision: constants_1.Decision.INFO_HASH_ALREADY_EXISTS };
75
- }
76
- if (!compareFileTrees(info, searchee)) {
77
- return { decision: constants_1.Decision.FILE_TREE_MISMATCH };
78
- }
79
- return { decision: constants_1.Decision.MATCH, info };
80
- }
81
- function existsInCache(infoHash) {
82
- return fs_1.existsSync(path_1.default.join(configuration_1.appDir(), constants_1.TORRENT_CACHE_FOLDER, `${infoHash}.cached.torrent`));
83
- }
84
- async function getCachedTorrentFile(infoHash) {
85
- return torrent_1.parseTorrentFromFilename(path_1.default.join(configuration_1.appDir(), constants_1.TORRENT_CACHE_FOLDER, `${infoHash}.cached.torrent`));
86
- }
87
- function cacheTorrentFile(meta) {
88
- fs_1.writeFileSync(path_1.default.join(configuration_1.appDir(), constants_1.TORRENT_CACHE_FOLDER, `${meta.infoHash}.cached.torrent`), parse_torrent_1.default.toTorrentFile(meta));
89
- }
90
- async function assessResultCaching(result, searchee, infoHashesToExclude) {
91
- const { Guid, Title, TrackerId: tracker } = result;
92
- const logReason = createReasonLogger(Title, tracker, searchee.name);
93
- const cacheEntry = db_1.default
94
- .get([
95
- constants_1.DECISIONS,
96
- searchee.name,
97
- Guid,
98
- ])
99
- .clone()
100
- .value();
101
- // handles path creation
102
- db_1.default.get(constants_1.DECISIONS)
103
- .defaultsDeep({
104
- [searchee.name]: {
105
- [Guid]: {
106
- firstSeen: Date.now(),
107
- },
108
- },
109
- })
110
- .set([searchee.name, Guid, "lastSeen"], Date.now())
111
- .value();
112
- let assessment;
113
- if (cacheEntry && cacheEntry.decision !== constants_1.Decision.MATCH) {
114
- assessment = { decision: cacheEntry.decision };
115
- logReason(cacheEntry.decision, true);
116
- }
117
- else if (cacheEntry && existsInCache(cacheEntry.infoHash)) {
118
- if (infoHashesToExclude.includes(cacheEntry.infoHash)) {
119
- // has been added since the last run
120
- assessment = { decision: constants_1.Decision.INFO_HASH_ALREADY_EXISTS };
121
- db_1.default.set([constants_1.DECISIONS, searchee.name, Guid, "decision"], assessment.decision).value();
122
- }
123
- else {
124
- assessment = {
125
- decision: cacheEntry.decision,
126
- info: await getCachedTorrentFile(cacheEntry.infoHash),
127
- };
128
- }
129
- }
130
- else {
131
- assessment = await assessResultHelper(result, searchee, infoHashesToExclude);
132
- db_1.default.set([constants_1.DECISIONS, searchee.name, Guid, "decision"], assessment.decision).value();
133
- if (assessment.decision === constants_1.Decision.MATCH) {
134
- db_1.default.set([constants_1.DECISIONS, searchee.name, Guid, "infoHash"], assessment.info.infoHash).value();
135
- cacheTorrentFile(assessment.info);
136
- }
137
- logReason(assessment.decision, false);
138
- }
139
- db_1.default.write();
140
- return assessment;
141
- }
142
- exports.assessResult = assessResultCaching;
143
- //# sourceMappingURL=decide.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/decide.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CrossSeedError = void 0;
4
- const logger_1 = require("./logger");
5
- class CrossSeedError extends Error {
6
- constructor(message) {
7
- super(message);
8
- delete this.stack;
9
- }
10
- print() {
11
- logger_1.logger.error(this.message);
12
- }
13
- }
14
- exports.CrossSeedError = CrossSeedError;
15
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAElC,MAAa,cAAe,SAAQ,KAAK;IACxC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,KAAK;QACJ,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACD;AATD,wCASC"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.makeJackettRequest = exports.validateJackettApi = void 0;
7
- const querystring_1 = __importDefault(require("querystring"));
8
- const simple_get_1 = __importDefault(require("simple-get"));
9
- const constants_1 = require("./constants");
10
- const errors_1 = require("./errors");
11
- const logger_1 = require("./logger");
12
- const runtimeConfig_1 = require("./runtimeConfig");
13
- function reformatTitleForSearching(name) {
14
- const seasonMatch = name.match(constants_1.SEASON_REGEX);
15
- const movieMatch = name.match(constants_1.MOVIE_REGEX);
16
- const episodeMatch = name.match(constants_1.EP_REGEX);
17
- const fullMatch = episodeMatch
18
- ? episodeMatch[0]
19
- : seasonMatch
20
- ? seasonMatch[0]
21
- : movieMatch
22
- ? movieMatch[0]
23
- : name;
24
- return fullMatch
25
- .replace(/[.()[\]]/g, " ")
26
- .replace(/\s+/g, " ")
27
- .trim();
28
- }
29
- function fullJackettUrl(jackettServerUrl, params) {
30
- const jackettPath = `/api/v2.0/indexers/all/results`;
31
- return `${jackettServerUrl}${jackettPath}?${querystring_1.default.encode(params)}`;
32
- }
33
- async function validateJackettApi() {
34
- const { jackettServerUrl, jackettApiKey: apikey } = runtimeConfig_1.getRuntimeConfig();
35
- if (/\/$/.test(jackettServerUrl)) {
36
- logger_1.logger.warn("Warning: Jackett server url should not end with '/'");
37
- }
38
- // search for gibberish so the results will be empty
39
- const gibberish = "bscdjpstabgdspjdasmomdsenqciadsnocdpsikncaodsnimcdqsanc";
40
- try {
41
- await makeJackettRequest(gibberish);
42
- }
43
- catch (e) {
44
- const dummyUrl = fullJackettUrl(jackettServerUrl, { apikey });
45
- throw new errors_1.CrossSeedError(`Could not reach Jackett at ${dummyUrl}`);
46
- }
47
- }
48
- exports.validateJackettApi = validateJackettApi;
49
- function makeJackettRequest(name, nonceOptions = runtimeConfig_1.EmptyNonceOptions) {
50
- const { jackettApiKey, trackers: runtimeConfigTrackers, jackettServerUrl, } = runtimeConfig_1.getRuntimeConfig();
51
- const { trackers = runtimeConfigTrackers } = nonceOptions;
52
- const params = {
53
- apikey: jackettApiKey,
54
- Query: reformatTitleForSearching(name),
55
- "Tracker[]": trackers,
56
- };
57
- const opts = {
58
- method: "GET",
59
- url: fullJackettUrl(jackettServerUrl, params),
60
- json: true,
61
- };
62
- logger_1.logger.verbose({
63
- label: logger_1.Label.JACKETT,
64
- message: `making search with query "${params.Query}"`,
65
- });
66
- return new Promise((resolve, reject) => {
67
- simple_get_1.default.concat(opts, (err, res, data) => {
68
- if (err)
69
- reject(err);
70
- else
71
- resolve(data);
72
- });
73
- });
74
- }
75
- exports.makeJackettRequest = makeJackettRequest;
76
- //# sourceMappingURL=jackett.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jackett.js","sourceRoot":"","sources":["../../src/jackett.ts"],"names":[],"mappings":"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"}