cross-seed 6.0.0-2 → 6.0.0-20

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 (60) hide show
  1. package/dist/Result.js +17 -11
  2. package/dist/Result.js.map +1 -1
  3. package/dist/action.js +141 -45
  4. package/dist/action.js.map +1 -1
  5. package/dist/arr.js +200 -0
  6. package/dist/arr.js.map +1 -0
  7. package/dist/clients/Deluge.js +121 -61
  8. package/dist/clients/Deluge.js.map +1 -1
  9. package/dist/clients/QBittorrent.js +70 -64
  10. package/dist/clients/QBittorrent.js.map +1 -1
  11. package/dist/clients/RTorrent.js +9 -9
  12. package/dist/clients/RTorrent.js.map +1 -1
  13. package/dist/clients/TorrentClient.js.map +1 -1
  14. package/dist/clients/Transmission.js +9 -9
  15. package/dist/clients/Transmission.js.map +1 -1
  16. package/dist/cmd.js +11 -7
  17. package/dist/cmd.js.map +1 -1
  18. package/dist/config.template.cjs +68 -36
  19. package/dist/config.template.cjs.map +1 -1
  20. package/dist/configSchema.js +42 -8
  21. package/dist/configSchema.js.map +1 -1
  22. package/dist/configuration.js.map +1 -1
  23. package/dist/constants.js +89 -6
  24. package/dist/constants.js.map +1 -1
  25. package/dist/dataFiles.js +4 -5
  26. package/dist/dataFiles.js.map +1 -1
  27. package/dist/decide.js +128 -90
  28. package/dist/decide.js.map +1 -1
  29. package/dist/errors.js +5 -2
  30. package/dist/errors.js.map +1 -1
  31. package/dist/indexers.js +31 -4
  32. package/dist/indexers.js.map +1 -1
  33. package/dist/jobs.js +2 -0
  34. package/dist/jobs.js.map +1 -1
  35. package/dist/logger.js +18 -5
  36. package/dist/logger.js.map +1 -1
  37. package/dist/migrations/05-caps.js +16 -0
  38. package/dist/migrations/05-caps.js.map +1 -0
  39. package/dist/migrations/migrations.js +9 -1
  40. package/dist/migrations/migrations.js.map +1 -1
  41. package/dist/pipeline.js +165 -81
  42. package/dist/pipeline.js.map +1 -1
  43. package/dist/preFilter.js +89 -36
  44. package/dist/preFilter.js.map +1 -1
  45. package/dist/pushNotifier.js +2 -1
  46. package/dist/pushNotifier.js.map +1 -1
  47. package/dist/runtimeConfig.js.map +1 -1
  48. package/dist/searchee.js +149 -10
  49. package/dist/searchee.js.map +1 -1
  50. package/dist/server.js +10 -10
  51. package/dist/server.js.map +1 -1
  52. package/dist/startup.js +2 -0
  53. package/dist/startup.js.map +1 -1
  54. package/dist/torrent.js +86 -28
  55. package/dist/torrent.js.map +1 -1
  56. package/dist/torznab.js +250 -88
  57. package/dist/torznab.js.map +1 -1
  58. package/dist/utils.js +84 -21
  59. package/dist/utils.js.map +1 -1
  60. package/package.json +3 -1
package/dist/utils.js CHANGED
@@ -1,19 +1,23 @@
1
1
  import path, { basename } from "path";
2
- import { EP_REGEX, MOVIE_REGEX, SEASON_REGEX, ANIME_REGEX, VIDEO_EXTENSIONS, Decision, } from "./constants.js";
2
+ import { ALL_EXTENSIONS, ANIME_REGEX, AUDIO_EXTENSIONS, BOOK_EXTENSIONS, Decision, EP_REGEX, MOVIE_REGEX, SCENE_TITLE_REGEX, SEASON_REGEX, VIDEO_EXTENSIONS, } from "./constants.js";
3
3
  import { resultOf, resultOfErr } from "./Result.js";
4
+ import { Metafile } from "./parseTorrent.js";
5
+ import chalk from "chalk";
4
6
  export var MediaType;
5
7
  (function (MediaType) {
6
8
  MediaType["EPISODE"] = "episode";
7
9
  MediaType["SEASON"] = "pack";
8
10
  MediaType["MOVIE"] = "movie";
9
11
  MediaType["ANIME"] = "anime";
12
+ MediaType["AUDIO"] = "audio";
13
+ MediaType["BOOK"] = "book";
10
14
  MediaType["OTHER"] = "unknown";
11
15
  })(MediaType || (MediaType = {}));
12
16
  export function isTruthy(value) {
13
17
  return Boolean(value);
14
18
  }
15
19
  export function stripExtension(filename) {
16
- for (const ext of VIDEO_EXTENSIONS) {
20
+ for (const ext of ALL_EXTENSIONS) {
17
21
  if (filename.endsWith(ext))
18
22
  return basename(filename, ext);
19
23
  }
@@ -29,26 +33,51 @@ export function humanReadableSize(bytes) {
29
33
  const k = 1000;
30
34
  const sizes = ["B", "kB", "MB", "GB", "TB"];
31
35
  // engineering notation: (coefficient) * 1000 ^ (exponent)
32
- const exponent = Math.floor(Math.log(bytes) / Math.log(k));
36
+ const exponent = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));
33
37
  const coefficient = bytes / Math.pow(k, exponent);
34
38
  return `${parseFloat(coefficient.toFixed(2))} ${sizes[exponent]}`;
35
39
  }
36
- export function getTag(name, isVideo) {
37
- return EP_REGEX.test(name)
38
- ? MediaType.EPISODE
39
- : SEASON_REGEX.test(name)
40
- ? MediaType.SEASON
41
- : MOVIE_REGEX.test(name)
42
- ? MediaType.MOVIE
43
- : isVideo && ANIME_REGEX.test(name)
44
- ? MediaType.ANIME
45
- : MediaType.OTHER;
40
+ export function getMediaType(searchee) {
41
+ function hasExt(searchee, exts) {
42
+ return searchee.files.some((f) => exts.includes(path.extname(f.name)));
43
+ }
44
+ const stem = stripExtension(searchee.name);
45
+ const hasVideoExtensions = hasExt(searchee, VIDEO_EXTENSIONS);
46
+ function unsupportedMediaType(searchee) {
47
+ //any unsupported media that needs to be identified goes here
48
+ if (hasExt(searchee, AUDIO_EXTENSIONS)) {
49
+ return MediaType.AUDIO;
50
+ }
51
+ else if (hasExt(searchee, BOOK_EXTENSIONS)) {
52
+ return MediaType.BOOK;
53
+ }
54
+ else {
55
+ return MediaType.OTHER;
56
+ }
57
+ }
58
+ // put new supported media type cases in this switch
59
+ if (EP_REGEX.test(stem)) {
60
+ return MediaType.EPISODE;
61
+ }
62
+ else if (SEASON_REGEX.test(stem)) {
63
+ return MediaType.SEASON;
64
+ }
65
+ else if (hasVideoExtensions) {
66
+ if (MOVIE_REGEX.test(stem))
67
+ return MediaType.MOVIE;
68
+ if (ANIME_REGEX.test(stem))
69
+ return MediaType.ANIME;
70
+ return unsupportedMediaType(searchee);
71
+ }
72
+ else {
73
+ return unsupportedMediaType(searchee);
74
+ }
46
75
  }
47
76
  export function shouldRecheck(decision) {
48
77
  switch (decision) {
49
78
  case Decision.MATCH:
50
- return false;
51
79
  case Decision.MATCH_SIZE_ONLY:
80
+ return false;
52
81
  case Decision.MATCH_PARTIAL:
53
82
  default:
54
83
  return true;
@@ -63,6 +92,15 @@ export async function time(cb, times) {
63
92
  times.push(performance.now() - before);
64
93
  }
65
94
  }
95
+ export function sanitizeUrl(url) {
96
+ if (typeof url === "string") {
97
+ url = new URL(url);
98
+ }
99
+ return url.origin + url.pathname;
100
+ }
101
+ export function getApikey(url) {
102
+ return new URL(url).searchParams.get("apikey");
103
+ }
66
104
  export function cleanseSeparators(str) {
67
105
  return str
68
106
  .replace(/\[.*?\]|「.*?」|「.*?」|【.*?】/g, "")
@@ -70,24 +108,31 @@ export function cleanseSeparators(str) {
70
108
  .replace(/\s+/g, " ")
71
109
  .trim();
72
110
  }
111
+ export function isBadTitle(title) {
112
+ return ["season", "ep"].includes(title.toLowerCase());
113
+ }
73
114
  export function getAnimeQueries(name) {
74
- // Only use if getTag returns anime as it's conditional on a few factors
115
+ // Only use if getMediaType returns anime as it's conditional on a few factors
75
116
  const animeQueries = [];
76
117
  const { title, altTitle, release } = name.match(ANIME_REGEX)?.groups ?? {};
77
118
  if (title) {
78
119
  animeQueries.push(cleanseSeparators(`${title} ${release}`));
79
120
  }
80
121
  if (altTitle) {
122
+ if (isBadTitle(altTitle))
123
+ return animeQueries;
81
124
  animeQueries.push(cleanseSeparators(`${altTitle} ${release}`));
82
125
  }
83
126
  return animeQueries;
84
127
  }
85
- export function reformatTitleForSearching(name) {
86
- const seasonMatch = name.match(SEASON_REGEX);
87
- const movieMatch = name.match(MOVIE_REGEX);
88
- const episodeMatch = name.match(EP_REGEX);
89
- const fullMatch = episodeMatch?.[0] ?? seasonMatch?.[0] ?? movieMatch?.[0] ?? name;
90
- return cleanseSeparators(fullMatch);
128
+ export function reformatTitleForSearching(title) {
129
+ return cleanseSeparators(title).match(SCENE_TITLE_REGEX).groups.title;
130
+ }
131
+ export function reformatNameForSearching(name) {
132
+ return reformatTitleForSearching(name.match(EP_REGEX)?.groups?.title ??
133
+ name.match(SEASON_REGEX)?.groups?.title ??
134
+ name.match(MOVIE_REGEX)?.groups?.title ??
135
+ name);
91
136
  }
92
137
  export const tap = (fn) => (value) => {
93
138
  fn(value);
@@ -101,6 +146,18 @@ export function humanReadableDate(timestamp) {
101
146
  // swedish conventions roughly follow the iso format!
102
147
  return new Date(timestamp).toLocaleString("sv");
103
148
  }
149
+ export function getLogString(data, color) {
150
+ if (data instanceof Metafile) {
151
+ return `${color(data.name)} ${chalk.dim(`[${data.infoHash.slice(0, 8)}...]`)}`;
152
+ }
153
+ return data.infoHash
154
+ ? `${color(data.name)} ${chalk.dim(`[${data.infoHash.slice(0, 8)}...]`)}`
155
+ : !data.path
156
+ ? color(data.name)
157
+ : data.name === basename(data.path)
158
+ ? color(data.path)
159
+ : `${color(data.name)} ${chalk.dim(`[${data.path}]`)}`;
160
+ }
104
161
  export function formatAsList(strings) {
105
162
  return new Intl.ListFormat("en", {
106
163
  style: "long",
@@ -131,4 +188,10 @@ export function extractCredentialsFromUrl(url, basePath) {
131
188
  return resultOfErr("invalid URL");
132
189
  }
133
190
  }
191
+ export function capitalizeFirstLetter(string) {
192
+ return string.charAt(0).toUpperCase() + string.slice(1);
193
+ }
194
+ export function extractInt(str) {
195
+ return parseInt(str.match(/\d+/)[0]);
196
+ }
134
197
  //# sourceMappingURL=utils.js.map
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": "6.0.0-2",
3
+ "version": "6.0.0-20",
4
4
  "description": "Fully-automatic cross-seeding with Torznab",
5
5
  "scripts": {
6
6
  "test": "true",
@@ -30,7 +30,9 @@
30
30
  "bencode": "^2.0.1",
31
31
  "better-sqlite3": "^9.4.0",
32
32
  "chalk": "^5.0.0",
33
+ "strip-ansi": "^7.1.0",
33
34
  "commander": "^8.3.0",
35
+ "fastest-levenshtein": "^1.0.16",
34
36
  "fuse.js": "^6.6.2",
35
37
  "knex": "^2.4.2",
36
38
  "lodash-es": "^4.17.21",