cross-seed 5.9.1 → 6.0.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.
Files changed (64) hide show
  1. package/README.md +1 -1
  2. package/dist/Result.js +2 -0
  3. package/dist/Result.js.map +1 -1
  4. package/dist/action.js +117 -57
  5. package/dist/action.js.map +1 -1
  6. package/dist/auth.js +5 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/clients/Deluge.js +68 -36
  9. package/dist/clients/Deluge.js.map +1 -1
  10. package/dist/clients/QBittorrent.js +40 -30
  11. package/dist/clients/QBittorrent.js.map +1 -1
  12. package/dist/clients/RTorrent.js +61 -23
  13. package/dist/clients/RTorrent.js.map +1 -1
  14. package/dist/clients/TorrentClient.js.map +1 -1
  15. package/dist/clients/Transmission.js +18 -8
  16. package/dist/clients/Transmission.js.map +1 -1
  17. package/dist/cmd.js +76 -75
  18. package/dist/cmd.js.map +1 -1
  19. package/dist/config.template.cjs +226 -142
  20. package/dist/config.template.cjs.map +1 -1
  21. package/dist/configSchema.js +184 -0
  22. package/dist/configSchema.js.map +1 -0
  23. package/dist/configuration.js +35 -9
  24. package/dist/configuration.js.map +1 -1
  25. package/dist/constants.js +27 -11
  26. package/dist/constants.js.map +1 -1
  27. package/dist/dataFiles.js +17 -8
  28. package/dist/dataFiles.js.map +1 -1
  29. package/dist/decide.js +100 -20
  30. package/dist/decide.js.map +1 -1
  31. package/dist/diff.js.map +1 -1
  32. package/dist/errors.js.map +1 -1
  33. package/dist/indexers.js +3 -3
  34. package/dist/indexers.js.map +1 -1
  35. package/dist/jobs.js +15 -7
  36. package/dist/jobs.js.map +1 -1
  37. package/dist/logger.js +9 -9
  38. package/dist/logger.js.map +1 -1
  39. package/dist/migrations/00-initialSchema.js.map +1 -1
  40. package/dist/migrations/02-timestamps.js +3 -1
  41. package/dist/migrations/02-timestamps.js.map +1 -1
  42. package/dist/parseTorrent.js +11 -2
  43. package/dist/parseTorrent.js.map +1 -1
  44. package/dist/pipeline.js +34 -25
  45. package/dist/pipeline.js.map +1 -1
  46. package/dist/preFilter.js +17 -6
  47. package/dist/preFilter.js.map +1 -1
  48. package/dist/pushNotifier.js +29 -10
  49. package/dist/pushNotifier.js.map +1 -1
  50. package/dist/runtimeConfig.js.map +1 -1
  51. package/dist/searchee.js +8 -1
  52. package/dist/searchee.js.map +1 -1
  53. package/dist/server.js.map +1 -1
  54. package/dist/startup.js +62 -23
  55. package/dist/startup.js.map +1 -1
  56. package/dist/torrent.js +14 -29
  57. package/dist/torrent.js.map +1 -1
  58. package/dist/torznab.js +56 -32
  59. package/dist/torznab.js.map +1 -1
  60. package/dist/utils.js +32 -5
  61. package/dist/utils.js.map +1 -1
  62. package/package.json +23 -13
  63. package/dist/config.template.docker.cjs +0 -236
  64. package/dist/config.template.docker.cjs.map +0 -1
package/dist/startup.js CHANGED
@@ -1,37 +1,76 @@
1
- import { getClient } from "./clients/TorrentClient.js";
2
- import { MatchMode } from "./constants.js";
3
1
  import { CrossSeedError } from "./errors.js";
4
- import { logger } from "./logger.js";
5
- import { getRuntimeConfig } from "./runtimeConfig.js";
6
- import { validateTorrentDir } from "./torrent.js";
2
+ import { Label, logger } from "./logger.js";
3
+ import { Action } from "./constants.js";
7
4
  import { validateTorznabUrls } from "./torznab.js";
8
- import { validateAction } from "./action.js";
9
- function validateOptions() {
10
- const { action, rtorrentRpcUrl, qbittorrentUrl, transmissionRpcUrl, delugeRpcUrl, dataDirs, linkDir, matchMode, skipRecheck, } = getRuntimeConfig();
11
- if (action === "inject" &&
12
- !(rtorrentRpcUrl ||
13
- qbittorrentUrl ||
14
- transmissionRpcUrl ||
15
- delugeRpcUrl)) {
16
- throw new CrossSeedError("You need to specify --rtorrent-rpc-url, --transmission-rpc-url, --qbittorrent-url, or --deluge-rpc-url when using '-A inject'.");
5
+ import { getClient } from "./clients/TorrentClient.js";
6
+ import { getRuntimeConfig } from "./runtimeConfig.js";
7
+ import { inspect } from "util";
8
+ import { stat, access, constants } from "fs/promises";
9
+ /**
10
+ * validates existence, permission, and that a path is a directory
11
+ * @param path string of path to validate
12
+ * @param optionName name of the configuration key
13
+ * @returns true if path exists and has required permission
14
+ */
15
+ async function verifyPath(path, optionName, permissions) {
16
+ try {
17
+ if ((await stat(path)).isDirectory()) {
18
+ await access(path, permissions);
19
+ return true;
20
+ }
21
+ }
22
+ catch (error) {
23
+ if (error.code === "ENOENT") {
24
+ logger.error(`\tYour ${optionName} "${path}" is not a valid directory on the filesystem.`);
25
+ }
26
+ else {
27
+ logger.error(`\tYour ${optionName} "${path}" has invalid permissions.`);
28
+ }
29
+ }
30
+ return false;
31
+ }
32
+ /**
33
+ * verifies the config paths provided against the filesystem
34
+ * @returns true (if paths are valid)
35
+ */
36
+ async function checkConfigPaths() {
37
+ const { action, linkDir, dataDirs, torrentDir, outputDir, rtorrentRpcUrl } = getRuntimeConfig();
38
+ const READ_ONLY = constants.R_OK;
39
+ const READ_AND_WRITE = constants.R_OK | constants.W_OK;
40
+ let pathFailure = 0;
41
+ if (typeof torrentDir === "string" &&
42
+ !(await verifyPath(torrentDir, "torrentDir", READ_ONLY))) {
43
+ pathFailure++;
44
+ }
45
+ if ((action === Action.SAVE || rtorrentRpcUrl) &&
46
+ !(await verifyPath(outputDir, "outputDir", READ_AND_WRITE))) {
47
+ pathFailure++;
48
+ }
49
+ if (linkDir && !(await verifyPath(linkDir, "linkDir", READ_AND_WRITE))) {
50
+ pathFailure++;
17
51
  }
18
- if ((dataDirs && !linkDir) || (!dataDirs && linkDir)) {
19
- throw new CrossSeedError("Data based matching requires both --link-dir and --data-dirs");
52
+ if (dataDirs) {
53
+ for (const dataDir of dataDirs) {
54
+ if (!(await verifyPath(dataDir, "dataDirs", READ_ONLY))) {
55
+ pathFailure++;
56
+ }
57
+ }
20
58
  }
21
- if (matchMode == MatchMode.RISKY && skipRecheck) {
22
- logger.warn("It is strongly recommended to not skip rechecking for risky matching mode");
59
+ if (pathFailure) {
60
+ throw new CrossSeedError(`\tYour configuration is invalid, please see the ${pathFailure > 1 ? "errors" : "error"} above for details.`);
23
61
  }
24
62
  }
25
63
  export async function doStartupValidation() {
26
- logger.info("Validating your configuration...");
27
- validateOptions();
28
64
  const downloadClient = getClient();
29
65
  await Promise.all([
30
- validateAction(),
66
+ checkConfigPaths(),
31
67
  validateTorznabUrls(),
32
68
  downloadClient?.validateConfig(),
33
- validateTorrentDir(),
34
- ].filter(Boolean));
69
+ ]);
70
+ logger.verbose({
71
+ label: Label.CONFIGDUMP,
72
+ message: inspect(getRuntimeConfig()),
73
+ });
35
74
  logger.info("Your configuration is valid!");
36
75
  }
37
76
  //# sourceMappingURL=startup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,eAAe;IACvB,MAAM,EACL,MAAM,EACN,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,GACX,GAAG,gBAAgB,EAAE,CAAC;IACvB,IACC,MAAM,KAAK,QAAQ;QACnB,CAAC,CACA,cAAc;YACd,cAAc;YACd,kBAAkB;YAClB,YAAY,CACZ,EACA;QACD,MAAM,IAAI,cAAc,CACvB,gIAAgI,CAChI,CAAC;KACF;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE;QACrD,MAAM,IAAI,cAAc,CACvB,8DAA8D,CAC9D,CAAC;KACF;IACD,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,WAAW,EAAE;QAChD,MAAM,CAAC,IAAI,CACV,2EAA2E,CAC3E,CAAC;KACF;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAChD,eAAe,EAAE,CAAC;IAClB,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,CAAC,GAAG,CAChB;QACC,cAAc,EAAE;QAChB,mBAAmB,EAAE;QACrB,cAAc,EAAE,cAAc,EAAE;QAChC,kBAAkB,EAAE;KACpB,CAAC,MAAM,CAAC,OAAO,CAAC,CACjB,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
package/dist/torrent.js CHANGED
@@ -1,11 +1,9 @@
1
- import fs, { promises as fsPromises } from "fs";
1
+ import { readdir, readFile, writeFile } from "fs/promises";
2
2
  import Fuse from "fuse.js";
3
- import fetch from "node-fetch";
4
- import path, { join } from "path";
3
+ import { extname, join, resolve } from "path";
5
4
  import { inspect } from "util";
6
5
  import { USER_AGENT } from "./constants.js";
7
6
  import { db } from "./db.js";
8
- import { CrossSeedError } from "./errors.js";
9
7
  import { logger, logOnce } from "./logger.js";
10
8
  import { Metafile } from "./parseTorrent.js";
11
9
  import { resultOf, resultOfErr } from "./Result.js";
@@ -19,9 +17,9 @@ export var SnatchError;
19
17
  SnatchError["MAGNET_LINK"] = "MAGNET_LINK";
20
18
  SnatchError["INVALID_CONTENTS"] = "INVALID_CONTENTS";
21
19
  SnatchError["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
22
- })(SnatchError = SnatchError || (SnatchError = {}));
20
+ })(SnatchError || (SnatchError = {}));
23
21
  export async function parseTorrentFromFilename(filename) {
24
- const data = await fsPromises.readFile(filename);
22
+ const data = await readFile(filename);
25
23
  return Metafile.decode(data);
26
24
  }
27
25
  function isMagnetRedirectError(error) {
@@ -29,8 +27,7 @@ function isMagnetRedirectError(error) {
29
27
  // node-fetch
30
28
  error.message.includes('URL scheme "magnet" is not supported.') ||
31
29
  // undici
32
- // @ts-expect-error error causes "not supported yet"
33
- error?.cause.message.includes("URL scheme must be a HTTP(S) scheme"));
30
+ Boolean(error.cause?.message.includes("URL scheme must be a HTTP(S) scheme")));
34
31
  }
35
32
  export async function parseTorrentFromURL(url) {
36
33
  const abortController = new AbortController();
@@ -87,20 +84,22 @@ export async function parseTorrentFromURL(url) {
87
84
  return resultOfErr(SnatchError.INVALID_CONTENTS);
88
85
  }
89
86
  }
90
- export function saveTorrentFile(tracker, tag = "", meta) {
87
+ export async function saveTorrentFile(tracker, tag, meta) {
91
88
  const { outputDir } = getRuntimeConfig();
92
89
  const buf = meta.encode();
93
90
  const filename = `[${tag}][${tracker}]${stripExtension(meta.getFileSystemSafeName())}.torrent`;
94
- fs.writeFileSync(path.join(outputDir, filename), buf, { mode: 0o644 });
91
+ await writeFile(join(outputDir, filename), buf, { mode: 0o644 });
95
92
  }
96
93
  export async function findAllTorrentFilesInDir(torrentDir) {
97
- return (await fsPromises.readdir(torrentDir))
98
- .filter((fn) => path.extname(fn) === ".torrent")
94
+ return (await readdir(torrentDir))
95
+ .filter((fn) => extname(fn) === ".torrent")
99
96
  .sort()
100
- .map((fn) => path.resolve(path.join(torrentDir, fn)));
97
+ .map((fn) => resolve(join(torrentDir, fn)));
101
98
  }
102
99
  export async function indexNewTorrents() {
103
100
  const { torrentDir } = getRuntimeConfig();
101
+ if (typeof torrentDir !== "string")
102
+ return;
104
103
  const dirContents = await findAllTorrentFilesInDir(torrentDir);
105
104
  // index new torrents in the torrentDir
106
105
  for (const filepath of dirContents) {
@@ -137,22 +136,8 @@ export async function indexNewTorrents() {
137
136
  export async function getInfoHashesToExclude() {
138
137
  return (await db("torrent").select({ infoHash: "info_hash" })).map((t) => t.infoHash);
139
138
  }
140
- export async function validateTorrentDir() {
141
- const { torrentDir } = getRuntimeConfig();
142
- try {
143
- await fsPromises.readdir(torrentDir);
144
- }
145
- catch (e) {
146
- throw new CrossSeedError(`Torrent dir ${torrentDir} is invalid`);
147
- }
148
- }
149
- export async function loadTorrentDirLight() {
150
- const { torrentDir } = getRuntimeConfig();
151
- const torrentFilePaths = fs
152
- .readdirSync(torrentDir)
153
- .filter((fn) => path.extname(fn) === ".torrent")
154
- .sort()
155
- .map((filename) => join(getRuntimeConfig().torrentDir, filename));
139
+ export async function loadTorrentDirLight(torrentDir) {
140
+ const torrentFilePaths = await findAllTorrentFilesInDir(torrentDir);
156
141
  const searchees = [];
157
142
  for (const torrentFilePath of torrentFilePaths) {
158
143
  const searcheeResult = await createSearcheeFromTorrentFile(torrentFilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"torrent.js","sourceRoot":"","sources":["../src/torrent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"torrent.js","sourceRoot":"","sources":["../src/torrent.ts"],"names":[],"mappings":"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"}
package/dist/torznab.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import ms from "ms";
2
- import fetch from "node-fetch";
3
2
  import xml2js from "xml2js";
4
3
  import { EP_REGEX, SEASON_REGEX, USER_AGENT } from "./constants.js";
5
4
  import { db } from "./db.js";
@@ -7,9 +6,12 @@ import { CrossSeedError } from "./errors.js";
7
6
  import { getEnabledIndexers, IndexerStatus, updateIndexerStatus, } from "./indexers.js";
8
7
  import { Label, logger } from "./logger.js";
9
8
  import { getRuntimeConfig } from "./runtimeConfig.js";
10
- import { cleanseSeparators, getTag, MediaType, nMsAgo, reformatTitleForSearching, stripExtension, } from "./utils.js";
9
+ import { hasVideo } from "./searchee.js";
10
+ import { getAnimeQueries, cleanseSeparators, getTag, MediaType, nMsAgo, reformatTitleForSearching, stripExtension, } from "./utils.js";
11
11
  function sanitizeUrl(url) {
12
- url = new URL(url);
12
+ if (typeof url === "string") {
13
+ url = new URL(url);
14
+ }
13
15
  return url.origin + url.pathname;
14
16
  }
15
17
  function getApikey(url) {
@@ -41,45 +43,63 @@ function parseTorznabCaps(xml) {
41
43
  movieSearch: Boolean(isAvailable(capsSection?.["movie-search"])),
42
44
  };
43
45
  }
44
- function createTorznabSearchQuery(name, caps) {
45
- const nameWithoutExtension = stripExtension(name);
46
+ function createTorznabSearchQueries(searchee, caps) {
47
+ const nameWithoutExtension = stripExtension(searchee.name);
48
+ const isVideo = hasVideo(searchee);
46
49
  const extractNumber = (str) => parseInt(str.match(/\d+/)[0]);
47
- const mediaType = getTag(nameWithoutExtension);
50
+ const mediaType = getTag(nameWithoutExtension, isVideo);
48
51
  if (mediaType === MediaType.EPISODE && caps.tvSearch) {
49
52
  const match = nameWithoutExtension.match(EP_REGEX);
50
- return {
51
- t: "tvsearch",
52
- q: cleanseSeparators(match.groups.title),
53
- season: match.groups.season
54
- ? extractNumber(match.groups.season)
55
- : match.groups.year,
56
- ep: match.groups.episode
57
- ? extractNumber(match.groups.episode)
58
- : `${match.groups.month}/${match.groups.day}`,
59
- };
53
+ return [
54
+ {
55
+ t: "tvsearch",
56
+ q: cleanseSeparators(match.groups.title),
57
+ season: match.groups.season
58
+ ? extractNumber(match.groups.season)
59
+ : match.groups.year,
60
+ ep: match.groups.episode
61
+ ? extractNumber(match.groups.episode)
62
+ : `${match.groups.month}/${match.groups.day}`,
63
+ },
64
+ ];
60
65
  }
61
66
  else if (mediaType === MediaType.SEASON && caps.tvSearch) {
62
67
  const match = nameWithoutExtension.match(SEASON_REGEX);
63
- return {
64
- t: "tvsearch",
65
- q: cleanseSeparators(match.groups.title),
66
- season: extractNumber(match.groups.season),
67
- };
68
+ return [
69
+ {
70
+ t: "tvsearch",
71
+ q: cleanseSeparators(match.groups.title),
72
+ season: extractNumber(match.groups.season),
73
+ },
74
+ ];
68
75
  }
69
- else {
70
- return {
76
+ else if (mediaType === MediaType.ANIME) {
77
+ const animeQueries = getAnimeQueries(nameWithoutExtension);
78
+ return animeQueries.map((animeQuery) => ({
71
79
  t: "search",
72
- q: reformatTitleForSearching(nameWithoutExtension),
73
- };
80
+ q: animeQuery,
81
+ }));
82
+ }
83
+ else {
84
+ return [
85
+ {
86
+ t: "search",
87
+ q: reformatTitleForSearching(nameWithoutExtension),
88
+ },
89
+ ];
74
90
  }
75
91
  }
76
92
  export async function queryRssFeeds() {
77
- const candidatesByUrl = await makeRequests("", await getEnabledIndexers(), () => ({ t: "search", q: "" }));
93
+ const candidatesByUrl = await makeRequests(await getEnabledIndexers(), () => [{ t: "search", q: "" }]);
78
94
  return candidatesByUrl.flatMap((e) => e.candidates);
79
95
  }
80
- export async function searchTorznab(name) {
81
- const { excludeRecentSearch, excludeOlder } = getRuntimeConfig();
96
+ export async function searchTorznab(searchee) {
97
+ const { excludeRecentSearch, excludeOlder, torznab } = getRuntimeConfig();
98
+ if (torznab.length === 0) {
99
+ throw new Error("no indexers are available");
100
+ }
82
101
  const enabledIndexers = await getEnabledIndexers();
102
+ const name = searchee.name;
83
103
  // search history for name across all indexers
84
104
  const timestampDataSql = await db("searchee")
85
105
  .join("timestamp", "searchee.id", "timestamp.searchee_id")
@@ -105,7 +125,7 @@ export async function searchTorznab(name) {
105
125
  ? timestampCallout
106
126
  : ""}`,
107
127
  });
108
- return makeRequests(name, indexersToUse, (indexer) => createTorznabSearchQuery(name, {
128
+ return makeRequests(indexersToUse, (indexer) => createTorznabSearchQueries(searchee, {
109
129
  search: indexer.searchCap,
110
130
  tvSearch: indexer.tvSearchCap,
111
131
  movieSearch: indexer.movieSearchCap,
@@ -160,6 +180,10 @@ export async function syncWithDb() {
160
180
  .where({ id: apikeyUpdate.id })
161
181
  .update({ apikey: apikeyUpdate.apikey });
162
182
  }
183
+ // drop cached UNKNOWN_ERRORs on startup
184
+ await trx("indexer")
185
+ .where({ status: IndexerStatus.UNKNOWN_ERROR })
186
+ .update({ status: IndexerStatus.OK });
163
187
  });
164
188
  }
165
189
  function assembleUrl(urlStr, apikey, params) {
@@ -256,12 +280,12 @@ export async function validateTorznabUrls() {
256
280
  }
257
281
  const indexersWithSearch = await getEnabledIndexers();
258
282
  if (indexersWithSearch.length === 0) {
259
- throw new CrossSeedError("no working indexers available");
283
+ logger.warn("no working indexers available");
260
284
  }
261
285
  }
262
- async function makeRequests(name, indexers, getQuery) {
286
+ async function makeRequests(indexers, getQueries) {
263
287
  const { searchTimeout } = getRuntimeConfig();
264
- const searchUrls = indexers.map((indexer) => assembleUrl(indexer.url, indexer.apikey, getQuery(indexer)));
288
+ const searchUrls = indexers.flatMap((indexer) => getQueries(indexer).map((query) => assembleUrl(indexer.url, indexer.apikey, query)));
265
289
  searchUrls.forEach((message) => void logger.verbose({ label: Label.TORZNAB, message }));
266
290
  const abortControllers = searchUrls.map(() => new AbortController());
267
291
  if (typeof searchTimeout === "number") {
@@ -1 +1 @@
1
- {"version":3,"file":"torznab.js","sourceRoot":"","sources":["../src/torznab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"torznab.js","sourceRoot":"","sources":["../src/torznab.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,13 +1,17 @@
1
1
  import path, { basename } from "path";
2
- import { EP_REGEX, MOVIE_REGEX, SEASON_REGEX, VIDEO_EXTENSIONS, } from "./constants.js";
2
+ import { EP_REGEX, MOVIE_REGEX, SEASON_REGEX, ANIME_REGEX, VIDEO_EXTENSIONS, } from "./constants.js";
3
3
  import { resultOf, resultOfErr } from "./Result.js";
4
4
  export var MediaType;
5
5
  (function (MediaType) {
6
6
  MediaType["EPISODE"] = "episode";
7
7
  MediaType["SEASON"] = "pack";
8
8
  MediaType["MOVIE"] = "movie";
9
+ MediaType["ANIME"] = "anime";
9
10
  MediaType["OTHER"] = "unknown";
10
- })(MediaType = MediaType || (MediaType = {}));
11
+ })(MediaType || (MediaType = {}));
12
+ export function isTruthy(value) {
13
+ return Boolean(value);
14
+ }
11
15
  export function stripExtension(filename) {
12
16
  for (const ext of VIDEO_EXTENSIONS) {
13
17
  if (filename.endsWith(ext))
@@ -21,14 +25,24 @@ export function nMsAgo(n) {
21
25
  export function wait(n) {
22
26
  return new Promise((resolve) => setTimeout(resolve, n));
23
27
  }
24
- export function getTag(name) {
28
+ export function humanReadableSize(bytes) {
29
+ const k = 1000;
30
+ const sizes = ["B", "kB", "MB", "GB", "TB"];
31
+ // engineering notation: (coefficient) * 1000 ^ (exponent)
32
+ const exponent = Math.floor(Math.log(bytes) / Math.log(k));
33
+ const coefficient = bytes / Math.pow(k, exponent);
34
+ return `${parseFloat(coefficient.toFixed(2))} ${sizes[exponent]}`;
35
+ }
36
+ export function getTag(name, isVideo) {
25
37
  return EP_REGEX.test(name)
26
38
  ? MediaType.EPISODE
27
39
  : SEASON_REGEX.test(name)
28
40
  ? MediaType.SEASON
29
41
  : MOVIE_REGEX.test(name)
30
42
  ? MediaType.MOVIE
31
- : MediaType.OTHER;
43
+ : isVideo && ANIME_REGEX.test(name)
44
+ ? MediaType.ANIME
45
+ : MediaType.OTHER;
32
46
  }
33
47
  export async function time(cb, times) {
34
48
  const before = performance.now();
@@ -41,10 +55,23 @@ export async function time(cb, times) {
41
55
  }
42
56
  export function cleanseSeparators(str) {
43
57
  return str
58
+ .replace(/\[.*?\]|「.*?」|「.*?」|【.*?】/g, "")
44
59
  .replace(/[._()[\]]/g, " ")
45
60
  .replace(/\s+/g, " ")
46
61
  .trim();
47
62
  }
63
+ export function getAnimeQueries(name) {
64
+ // Only use if getTag returns anime as it's conditional on a few factors
65
+ const animeQueries = [];
66
+ const { title, altTitle, release } = name.match(ANIME_REGEX)?.groups ?? {};
67
+ if (title) {
68
+ animeQueries.push(cleanseSeparators(`${title} ${release}`));
69
+ }
70
+ if (altTitle) {
71
+ animeQueries.push(cleanseSeparators(`${altTitle} ${release}`));
72
+ }
73
+ return animeQueries;
74
+ }
48
75
  export function reformatTitleForSearching(name) {
49
76
  const seasonMatch = name.match(SEASON_REGEX);
50
77
  const movieMatch = name.match(MOVIE_REGEX);
@@ -60,7 +87,7 @@ export async function filterAsync(arr, predicate) {
60
87
  const results = await Promise.all(arr.map(predicate));
61
88
  return arr.filter((_, index) => results[index]);
62
89
  }
63
- export function humanReadable(timestamp) {
90
+ export function humanReadableDate(timestamp) {
64
91
  // swedish conventions roughly follow the iso format!
65
92
  return new Date(timestamp).toLocaleString("sv");
66
93
  }
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cross-seed",
3
- "version": "5.9.1",
3
+ "version": "6.0.0-0",
4
4
  "description": "Fully-automatic cross-seeding with Torznab",
5
5
  "scripts": {
6
6
  "test": "true",
@@ -14,7 +14,7 @@
14
14
  "cross-seed": "dist/cmd.js"
15
15
  },
16
16
  "engines": {
17
- "node": ">=16"
17
+ "node": ">=20"
18
18
  },
19
19
  "files": [
20
20
  "dist/"
@@ -28,39 +28,49 @@
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
30
  "bencode": "^2.0.1",
31
- "better-sqlite3": "^8.0.1",
31
+ "better-sqlite3": "^9.4.0",
32
32
  "chalk": "^5.0.0",
33
33
  "commander": "^8.3.0",
34
- "fetch-blob": "^3.1.4",
35
- "formdata-polyfill": "^4.0.10",
36
34
  "fuse.js": "^6.6.2",
37
35
  "knex": "^2.4.2",
38
36
  "lodash-es": "^4.17.21",
39
37
  "ms": "^2.1.3",
40
- "node-fetch": "^3.2.0",
41
38
  "winston": "^3.3.3",
42
39
  "winston-daily-rotate-file": "^4.5.5",
43
40
  "xml2js": "^0.5.0",
44
- "xmlrpc": "^1.3.2"
41
+ "xmlrpc": "^1.3.2",
42
+ "zod": "^3.22.4"
45
43
  },
46
44
  "devDependencies": {
47
45
  "@types/bencode": "^2.0.1",
48
46
  "@types/lowdb": "^1.0.9",
47
+ "@types/node": "^20.10.6",
49
48
  "@types/xml2js": "^0.4.9",
50
49
  "@types/xmlrpc": "^1.3.6",
51
- "@typescript-eslint/eslint-plugin": "^5.8.1",
52
- "@typescript-eslint/parser": "^5.8.1",
53
- "eslint": "^8.5.0",
50
+ "@typescript-eslint/eslint-plugin": "^6.16.0",
51
+ "@typescript-eslint/parser": "^6.16.0",
52
+ "eslint": "^8.56.0",
54
53
  "husky": "^7.0.0",
55
54
  "lint-staged": "^12.1.4",
56
- "prettier": "^2.0.5",
55
+ "prettier": "^3.2.5",
57
56
  "rimraf": "^3.0.2",
58
- "typescript": "^4.7.4"
57
+ "typescript": "^5.3.3"
59
58
  },
60
59
  "prettier": {
61
60
  "tabWidth": 4,
62
61
  "useTabs": true,
63
- "proseWrap": "always"
62
+ "proseWrap": "always",
63
+ "overrides": [
64
+ {
65
+ "files": [
66
+ "*.yaml",
67
+ "*.yml"
68
+ ],
69
+ "options": {
70
+ "tabWidth": 2
71
+ }
72
+ }
73
+ ]
64
74
  },
65
75
  "lint-staged": {
66
76
  "*.{js,ts}": "eslint --cache",