cross-seed 2.9.2 → 3.0.2

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 +52 -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 -140
  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,169 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getTorrentByCriteria = exports.loadTorrentDirLight = exports.validateTorrentDir = exports.getInfoHashesToExclude = exports.indexNewTorrents = exports.findAllTorrentFilesInDir = exports.saveTorrentFile = exports.parseTorrentFromURL = exports.parseTorrentFromFilename = void 0;
26
- const fs_1 = __importStar(require("fs"));
27
- const parse_torrent_1 = __importDefault(require("parse-torrent"));
28
- const path_1 = __importDefault(require("path"));
29
- const simple_get_1 = require("simple-get");
30
- const util_1 = require("util");
31
- const constants_1 = require("./constants");
32
- const db_1 = __importDefault(require("./db"));
33
- const errors_1 = require("./errors");
34
- const logger_1 = require("./logger");
35
- const runtimeConfig_1 = require("./runtimeConfig");
36
- const searchee_1 = require("./searchee");
37
- const utils_1 = require("./utils");
38
- async function parseTorrentFromFilename(filename) {
39
- const data = await fs_1.promises.readFile(filename);
40
- return parse_torrent_1.default(data);
41
- }
42
- exports.parseTorrentFromFilename = parseTorrentFromFilename;
43
- async function parseTorrentFromURL(url) {
44
- var _a;
45
- let response;
46
- try {
47
- response = await new Promise((resolve, reject) => {
48
- simple_get_1.concat({ url, followRedirects: false }, (err, res, data) => {
49
- if (err)
50
- return reject(err);
51
- res.data = data;
52
- return resolve(res);
53
- });
54
- });
55
- }
56
- catch (e) {
57
- logger_1.logger.error(`failed to access ${url}`);
58
- logger_1.logger.debug(e);
59
- return null;
60
- }
61
- if (response.statusCode < 200 || response.statusCode >= 300) {
62
- if (response.statusCode >= 300 &&
63
- response.statusCode < 400 &&
64
- ((_a = response.headers.location) === null || _a === void 0 ? void 0 : _a.startsWith("magnet:"))) {
65
- logger_1.logger.error(`Unsupported: magnet link detected at ${url}`);
66
- return null;
67
- }
68
- else {
69
- logger_1.logger.error(`error downloading torrent at ${url}: ${response.statusCode} ${response.statusMessage}`);
70
- logger_1.logger.debug("response: %s", response.data);
71
- logger_1.logger.debug("headers: %s", response.headers);
72
- return null;
73
- }
74
- }
75
- try {
76
- return parse_torrent_1.default(response.data);
77
- }
78
- catch (e) {
79
- logger_1.logger.error(`invalid torrent contents at ${url}`);
80
- logger_1.logger.debug(e);
81
- return null;
82
- }
83
- }
84
- exports.parseTorrentFromURL = parseTorrentFromURL;
85
- function saveTorrentFile(tracker, tag = "", info, nonceOptions) {
86
- const { outputDir: runtimeConfigOutputDir } = runtimeConfig_1.getRuntimeConfig();
87
- const { outputDir = runtimeConfigOutputDir } = nonceOptions;
88
- const buf = parse_torrent_1.default.toTorrentFile(info);
89
- const name = utils_1.stripExtension(info.name);
90
- const filename = `[${tag}][${tracker}]${name}.torrent`;
91
- fs_1.default.writeFileSync(path_1.default.join(outputDir, filename), buf, { mode: 0o644 });
92
- }
93
- exports.saveTorrentFile = saveTorrentFile;
94
- async function findAllTorrentFilesInDir(torrentDir) {
95
- return (await fs_1.promises.readdir(torrentDir))
96
- .filter((fn) => path_1.default.extname(fn) === ".torrent")
97
- .sort()
98
- .map((fn) => path_1.default.resolve(path_1.default.join(torrentDir, fn)));
99
- }
100
- exports.findAllTorrentFilesInDir = findAllTorrentFilesInDir;
101
- async function indexNewTorrents() {
102
- const { torrentDir } = runtimeConfig_1.getRuntimeConfig();
103
- const dirContents = await findAllTorrentFilesInDir(torrentDir);
104
- for (const filepath of dirContents) {
105
- const doesAlreadyExist = db_1.default
106
- .get(constants_1.INDEXED_TORRENTS)
107
- .find((indexEntry) => indexEntry.filepath === filepath)
108
- .value();
109
- if (!doesAlreadyExist) {
110
- let meta;
111
- try {
112
- meta = await parseTorrentFromFilename(filepath);
113
- }
114
- catch (e) {
115
- logger_1.logger.error(`Failed to parse ${filepath}`);
116
- logger_1.logger.debug(e);
117
- continue;
118
- }
119
- db_1.default.get(constants_1.INDEXED_TORRENTS).value().push({
120
- filepath,
121
- infoHash: meta.infoHash,
122
- name: meta.name,
123
- });
124
- }
125
- }
126
- db_1.default.set(constants_1.INDEXED_TORRENTS, db_1.default
127
- .get(constants_1.INDEXED_TORRENTS)
128
- .value()
129
- .filter((e) => dirContents.includes(e.filepath))).value();
130
- db_1.default.write();
131
- }
132
- exports.indexNewTorrents = indexNewTorrents;
133
- function getInfoHashesToExclude() {
134
- return db_1.default
135
- .get(constants_1.INDEXED_TORRENTS)
136
- .value()
137
- .map((t) => t.infoHash);
138
- }
139
- exports.getInfoHashesToExclude = getInfoHashesToExclude;
140
- async function validateTorrentDir() {
141
- const { torrentDir } = runtimeConfig_1.getRuntimeConfig();
142
- try {
143
- await fs_1.promises.readdir(torrentDir);
144
- }
145
- catch (e) {
146
- throw new errors_1.CrossSeedError(`Torrent dir ${torrentDir} is invalid`);
147
- }
148
- }
149
- exports.validateTorrentDir = validateTorrentDir;
150
- async function loadTorrentDirLight() {
151
- const { torrentDir } = runtimeConfig_1.getRuntimeConfig();
152
- return Promise.all(fs_1.default
153
- .readdirSync(torrentDir)
154
- .filter((fn) => path_1.default.extname(fn) === ".torrent")
155
- .sort()
156
- .map(searchee_1.createSearcheeFromTorrentFile)).then((searcheeResults) => searcheeResults.filter(utils_1.ok));
157
- }
158
- exports.loadTorrentDirLight = loadTorrentDirLight;
159
- async function getTorrentByCriteria(criteria) {
160
- await indexNewTorrents();
161
- const findResult = db_1.default.get(constants_1.INDEXED_TORRENTS).find(criteria).value();
162
- if (findResult === undefined) {
163
- const message = `could not find a torrent with the criteria ${util_1.inspect(criteria)}`;
164
- throw new Error(message);
165
- }
166
- return parseTorrentFromFilename(findResult.filepath);
167
- }
168
- exports.getTorrentByCriteria = getTorrentByCriteria;
169
- //# sourceMappingURL=torrent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"torrent.js","sourceRoot":"","sources":["../../src/torrent.ts"],"names":[],"mappings":"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"}
package/dist/src/utils.js DELETED
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ok = exports.getTag = exports.wait = exports.nMinutesAgo = exports.partial = exports.stripExtension = void 0;
4
- const constants_1 = require("./constants");
5
- function stripExtension(filename) {
6
- for (const ext of constants_1.EXTENSIONS) {
7
- const re = new RegExp(`\\.${ext}$`);
8
- if (re.test(filename))
9
- return filename.replace(re, "");
10
- }
11
- return filename;
12
- }
13
- exports.stripExtension = stripExtension;
14
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
15
- const partial = (func, ...presets) => (...args) => func(...presets, ...args);
16
- exports.partial = partial;
17
- function nMinutesAgo(n) {
18
- const date = new Date();
19
- date.setMinutes(date.getMinutes() - n);
20
- return date.getTime();
21
- }
22
- exports.nMinutesAgo = nMinutesAgo;
23
- function wait(n) {
24
- return new Promise((resolve) => setTimeout(resolve, n));
25
- }
26
- exports.wait = wait;
27
- function getTag(name) {
28
- return constants_1.EP_REGEX.test(name)
29
- ? "episode"
30
- : constants_1.SEASON_REGEX.test(name)
31
- ? "pack"
32
- : constants_1.MOVIE_REGEX.test(name)
33
- ? "movie"
34
- : "unknown";
35
- }
36
- exports.getTag = getTag;
37
- const ok = (r) => !(r instanceof Error);
38
- exports.ok = ok;
39
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAE9E,SAAgB,cAAc,CAAC,QAAgB;IAC9C,KAAK,MAAM,GAAG,IAAI,sBAAU,EAAE;QAC7B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KACvD;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAND,wCAMC;AAED,6EAA6E;AACtE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CACxD,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AADd,QAAA,OAAO,WACO;AAE3B,SAAgB,WAAW,CAAC,CAAS;IACpC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AAJD,kCAIC;AAED,SAAgB,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,oBAEC;AAED,SAAgB,MAAM,CAAC,IAAY;IAClC,OAAO,oBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,wBAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,uBAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AARD,wBAQC;AAIM,MAAM,EAAE,GAAG,CAAI,CAAY,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;AAAxD,QAAA,EAAE,MAAsD"}