cross-seed 7.0.0-1 → 7.0.0-10

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 (287) hide show
  1. package/dist/Result.d.ts +27 -0
  2. package/dist/Result.js +64 -0
  3. package/dist/Result.js.map +1 -0
  4. package/dist/action.d.ts +34 -0
  5. package/dist/action.js +694 -0
  6. package/dist/action.js.map +1 -0
  7. package/dist/arr.d.ts +31 -0
  8. package/dist/arr.js +267 -0
  9. package/dist/arr.js.map +1 -0
  10. package/dist/auth.d.ts +3 -0
  11. package/dist/auth.js +28 -0
  12. package/dist/auth.js.map +1 -0
  13. package/dist/clients/Deluge.d.ts +153 -0
  14. package/dist/clients/Deluge.js +699 -0
  15. package/dist/clients/Deluge.js.map +1 -0
  16. package/dist/clients/QBittorrent.d.ts +218 -0
  17. package/dist/clients/QBittorrent.js +786 -0
  18. package/dist/clients/QBittorrent.js.map +1 -0
  19. package/dist/clients/RTorrent.d.ts +43 -0
  20. package/dist/clients/RTorrent.js +658 -0
  21. package/dist/clients/RTorrent.js.map +1 -0
  22. package/dist/clients/TorrentClient.d.ts +108 -0
  23. package/dist/clients/TorrentClient.js +342 -0
  24. package/dist/clients/TorrentClient.js.map +1 -0
  25. package/dist/clients/Transmission.d.ts +43 -0
  26. package/dist/clients/Transmission.js +405 -0
  27. package/dist/clients/Transmission.js.map +1 -0
  28. package/dist/cmd.d.ts +2 -0
  29. package/dist/cmd.js +128 -0
  30. package/dist/cmd.js.map +1 -0
  31. package/dist/configSchema.d.ts +1 -0
  32. package/dist/configSchema.js +2 -0
  33. package/dist/configSchema.js.map +1 -0
  34. package/dist/configuration.d.ts +63 -0
  35. package/dist/configuration.js +321 -0
  36. package/dist/configuration.js.map +1 -0
  37. package/dist/constants.d.ts +108 -0
  38. package/dist/constants.js +251 -0
  39. package/dist/constants.js.map +1 -0
  40. package/dist/dataFiles.d.ts +8 -0
  41. package/dist/dataFiles.js +223 -0
  42. package/dist/dataFiles.js.map +1 -0
  43. package/dist/db.d.ts +14 -0
  44. package/dist/db.js +287 -0
  45. package/dist/db.js.map +1 -0
  46. package/dist/dbConfig.d.ts +4 -0
  47. package/dist/dbConfig.js +67 -0
  48. package/dist/dbConfig.js.map +1 -0
  49. package/dist/decide.d.ts +25 -0
  50. package/dist/decide.js +553 -0
  51. package/dist/decide.js.map +1 -0
  52. package/dist/diagnostics/db.d.ts +21 -0
  53. package/dist/diagnostics/db.js +107 -0
  54. package/dist/diagnostics/db.js.map +1 -0
  55. package/dist/diff.d.ts +1 -0
  56. package/dist/diff.js +24 -0
  57. package/dist/diff.js.map +1 -0
  58. package/dist/errors.d.ts +3 -0
  59. package/dist/errors.js +7 -0
  60. package/dist/errors.js.map +1 -0
  61. package/dist/indexers.d.ts +105 -0
  62. package/dist/indexers.js +248 -0
  63. package/dist/indexers.js.map +1 -0
  64. package/dist/inject.d.ts +2 -0
  65. package/dist/inject.js +594 -0
  66. package/dist/inject.js.map +1 -0
  67. package/dist/jobs.d.ts +29 -0
  68. package/dist/jobs.js +151 -0
  69. package/dist/jobs.js.map +1 -0
  70. package/dist/logger.d.ts +29 -0
  71. package/dist/logger.js +157 -0
  72. package/dist/logger.js.map +1 -0
  73. package/dist/migrations/00-initialSchema.d.ts +9 -0
  74. package/dist/migrations/00-initialSchema.js +30 -0
  75. package/dist/migrations/00-initialSchema.js.map +1 -0
  76. package/dist/migrations/01-jobs.d.ts +9 -0
  77. package/dist/migrations/01-jobs.js +12 -0
  78. package/dist/migrations/01-jobs.js.map +1 -0
  79. package/dist/migrations/02-timestamps.d.ts +9 -0
  80. package/dist/migrations/02-timestamps.js +21 -0
  81. package/dist/migrations/02-timestamps.js.map +1 -0
  82. package/dist/migrations/03-rateLimits.d.ts +9 -0
  83. package/dist/migrations/03-rateLimits.js +14 -0
  84. package/dist/migrations/03-rateLimits.js.map +1 -0
  85. package/dist/migrations/04-auth.d.ts +9 -0
  86. package/dist/migrations/04-auth.js +13 -0
  87. package/dist/migrations/04-auth.js.map +1 -0
  88. package/dist/migrations/05-caps.d.ts +9 -0
  89. package/dist/migrations/05-caps.js +16 -0
  90. package/dist/migrations/05-caps.js.map +1 -0
  91. package/dist/migrations/06-uniqueDecisions.d.ts +9 -0
  92. package/dist/migrations/06-uniqueDecisions.js +29 -0
  93. package/dist/migrations/06-uniqueDecisions.js.map +1 -0
  94. package/dist/migrations/07-limits.d.ts +9 -0
  95. package/dist/migrations/07-limits.js +12 -0
  96. package/dist/migrations/07-limits.js.map +1 -0
  97. package/dist/migrations/08-rss.d.ts +9 -0
  98. package/dist/migrations/08-rss.js +15 -0
  99. package/dist/migrations/08-rss.js.map +1 -0
  100. package/dist/migrations/09-clientAndDataSearchees.d.ts +9 -0
  101. package/dist/migrations/09-clientAndDataSearchees.js +34 -0
  102. package/dist/migrations/09-clientAndDataSearchees.js.map +1 -0
  103. package/dist/migrations/10-indexerNameAudioBookCaps.d.ts +9 -0
  104. package/dist/migrations/10-indexerNameAudioBookCaps.js +18 -0
  105. package/dist/migrations/10-indexerNameAudioBookCaps.js.map +1 -0
  106. package/dist/migrations/11-trackers.d.ts +9 -0
  107. package/dist/migrations/11-trackers.js +38 -0
  108. package/dist/migrations/11-trackers.js.map +1 -0
  109. package/dist/migrations/12-user-auth.d.ts +9 -0
  110. package/dist/migrations/12-user-auth.js +22 -0
  111. package/dist/migrations/12-user-auth.js.map +1 -0
  112. package/dist/migrations/13-settings.d.ts +9 -0
  113. package/dist/migrations/13-settings.js +23 -0
  114. package/dist/migrations/13-settings.js.map +1 -0
  115. package/dist/migrations/14-indexer-enabled-flag.d.ts +9 -0
  116. package/dist/migrations/14-indexer-enabled-flag.js +12 -0
  117. package/dist/migrations/14-indexer-enabled-flag.js.map +1 -0
  118. package/dist/migrations/15-remove-url-unique-constraint.d.ts +9 -0
  119. package/dist/migrations/15-remove-url-unique-constraint.js +14 -0
  120. package/dist/migrations/15-remove-url-unique-constraint.js.map +1 -0
  121. package/dist/migrations/16-prune-inactive-indexers.d.ts +9 -0
  122. package/dist/migrations/16-prune-inactive-indexers.js +17 -0
  123. package/dist/migrations/16-prune-inactive-indexers.js.map +1 -0
  124. package/dist/migrations/migrations.d.ts +13 -0
  125. package/dist/migrations/migrations.js +41 -0
  126. package/dist/migrations/migrations.js.map +1 -0
  127. package/dist/parseTorrent.d.ts +53 -0
  128. package/dist/parseTorrent.js +128 -0
  129. package/dist/parseTorrent.js.map +1 -0
  130. package/dist/pipeline.d.ts +41 -0
  131. package/dist/pipeline.js +578 -0
  132. package/dist/pipeline.js.map +1 -0
  133. package/dist/preFilter.d.ts +25 -0
  134. package/dist/preFilter.js +250 -0
  135. package/dist/preFilter.js.map +1 -0
  136. package/dist/problems/linking.d.ts +2 -0
  137. package/dist/problems/linking.js +80 -0
  138. package/dist/problems/linking.js.map +1 -0
  139. package/dist/problems/path.d.ts +22 -0
  140. package/dist/problems/path.js +96 -0
  141. package/dist/problems/path.js.map +1 -0
  142. package/dist/problems.d.ts +13 -0
  143. package/dist/problems.js +48 -0
  144. package/dist/problems.js.map +1 -0
  145. package/dist/pushNotifier.d.ts +19 -0
  146. package/dist/pushNotifier.js +137 -0
  147. package/dist/pushNotifier.js.map +1 -0
  148. package/dist/routes/baseApi.d.ts +2 -0
  149. package/dist/routes/baseApi.js +354 -0
  150. package/dist/routes/baseApi.js.map +1 -0
  151. package/dist/routes/indexerApi.d.ts +6 -0
  152. package/dist/routes/indexerApi.js +165 -0
  153. package/dist/routes/indexerApi.js.map +1 -0
  154. package/dist/routes/staticFrontendPlugin.d.ts +4 -0
  155. package/dist/routes/staticFrontendPlugin.js +61 -0
  156. package/dist/routes/staticFrontendPlugin.js.map +1 -0
  157. package/dist/runtimeConfig.d.ts +6 -0
  158. package/dist/runtimeConfig.js +27 -0
  159. package/dist/runtimeConfig.js.map +1 -0
  160. package/dist/searchee.d.ts +108 -0
  161. package/dist/searchee.js +690 -0
  162. package/dist/searchee.js.map +1 -0
  163. package/dist/server.d.ts +4 -0
  164. package/dist/server.js +65 -0
  165. package/dist/server.js.map +1 -0
  166. package/dist/services/indexerService.d.ts +96 -0
  167. package/dist/services/indexerService.js +287 -0
  168. package/dist/services/indexerService.js.map +1 -0
  169. package/dist/sessionCookies.d.ts +5 -0
  170. package/dist/sessionCookies.js +27 -0
  171. package/dist/sessionCookies.js.map +1 -0
  172. package/dist/startup.d.ts +25 -0
  173. package/dist/startup.js +157 -0
  174. package/dist/startup.js.map +1 -0
  175. package/dist/torrent.d.ts +69 -0
  176. package/dist/torrent.js +641 -0
  177. package/dist/torrent.js.map +1 -0
  178. package/dist/torznab.d.ts +60 -0
  179. package/dist/torznab.js +711 -0
  180. package/dist/torznab.js.map +1 -0
  181. package/dist/trpc/fastifyAdapter.d.ts +2 -0
  182. package/dist/trpc/fastifyAdapter.js +9 -0
  183. package/dist/trpc/fastifyAdapter.js.map +1 -0
  184. package/dist/trpc/index.d.ts +49 -0
  185. package/dist/trpc/index.js +53 -0
  186. package/dist/trpc/index.js.map +1 -0
  187. package/dist/trpc/routers/auth.d.ts +43 -0
  188. package/dist/trpc/routers/auth.js +116 -0
  189. package/dist/trpc/routers/auth.js.map +1 -0
  190. package/dist/trpc/routers/clients.d.ts +21 -0
  191. package/dist/trpc/routers/clients.js +65 -0
  192. package/dist/trpc/routers/clients.js.map +1 -0
  193. package/dist/trpc/routers/health.d.ts +17 -0
  194. package/dist/trpc/routers/health.js +24 -0
  195. package/dist/trpc/routers/health.js.map +1 -0
  196. package/dist/trpc/routers/index.d.ts +394 -0
  197. package/dist/trpc/routers/index.js +23 -0
  198. package/dist/trpc/routers/index.js.map +1 -0
  199. package/dist/trpc/routers/indexers.d.ts +75 -0
  200. package/dist/trpc/routers/indexers.js +79 -0
  201. package/dist/trpc/routers/indexers.js.map +1 -0
  202. package/dist/trpc/routers/jobs.d.ts +33 -0
  203. package/dist/trpc/routers/jobs.js +84 -0
  204. package/dist/trpc/routers/jobs.js.map +1 -0
  205. package/dist/trpc/routers/logs.d.ts +27 -0
  206. package/dist/trpc/routers/logs.js +91 -0
  207. package/dist/trpc/routers/logs.js.map +1 -0
  208. package/dist/trpc/routers/searchees.d.ts +51 -0
  209. package/dist/trpc/routers/searchees.js +156 -0
  210. package/dist/trpc/routers/searchees.js.map +1 -0
  211. package/dist/trpc/routers/settings.d.ts +83 -0
  212. package/dist/trpc/routers/settings.js +92 -0
  213. package/dist/trpc/routers/settings.js.map +1 -0
  214. package/dist/trpc/routers/stats.d.ts +42 -0
  215. package/dist/trpc/routers/stats.js +102 -0
  216. package/dist/trpc/routers/stats.js.map +1 -0
  217. package/dist/userAuth.d.ts +21 -0
  218. package/dist/userAuth.js +86 -0
  219. package/dist/userAuth.js.map +1 -0
  220. package/dist/utils/authUtils.d.ts +10 -0
  221. package/dist/utils/authUtils.js +24 -0
  222. package/dist/utils/authUtils.js.map +1 -0
  223. package/dist/utils/logWatcher.d.ts +28 -0
  224. package/dist/utils/logWatcher.js +229 -0
  225. package/dist/utils/logWatcher.js.map +1 -0
  226. package/dist/utils/object.d.ts +1 -0
  227. package/dist/utils/object.js +4 -0
  228. package/dist/utils/object.js.map +1 -0
  229. package/dist/utils.d.ts +172 -0
  230. package/dist/utils.js +648 -0
  231. package/dist/utils.js.map +1 -0
  232. package/dist/webui/assets/{FieldInfo-Bxj_j8SJ.js → FieldInfo-sRlPRNSK.js} +1 -1
  233. package/dist/webui/assets/{Page-C3rteCZt.js → Page-B68mlTwU.js} +1 -1
  234. package/dist/webui/assets/{array-field-DVSC6nHP.js → array-field-BCFMrvoU.js} +1 -1
  235. package/dist/webui/assets/{badge-DTZMtS0e.js → badge-C5YCxEzP.js} +1 -1
  236. package/dist/webui/assets/check-NQsw6yBl.js +1 -0
  237. package/dist/webui/assets/{chevron-down-CRy8M0kJ.js → chevron-down-8PGvFYxV.js} +1 -1
  238. package/dist/webui/assets/{clients-CW8oEZoQ.js → clients-DnVpwApe.js} +1 -1
  239. package/dist/webui/assets/{connect-YBNsnjWT.js → connect-wMg2zyz6.js} +1 -1
  240. package/dist/webui/assets/debug-BrjwiEi2.js +1 -0
  241. package/dist/webui/assets/{directories-BSK28RgR.js → directories-CHpJCWNR.js} +1 -1
  242. package/dist/webui/assets/{duration-field-C6xoSlJg.js → duration-field-DIkKt3iw.js} +1 -1
  243. package/dist/webui/assets/{general-lJJxZhH7.js → general-uZrUIxbI.js} +1 -1
  244. package/dist/webui/assets/health-_MuvAyjo.js +1 -0
  245. package/dist/webui/assets/index-B41DM2T5.css +1 -0
  246. package/dist/webui/assets/{index-C2cH1Gst.js → index-BBzHsn7u.js} +1 -1
  247. package/dist/webui/assets/{index-Bi48hI2z.js → index-Ncy0-Qo7.js} +3 -3
  248. package/dist/webui/assets/index-pKWy6v1P.js +1 -0
  249. package/dist/webui/assets/{jobs-CxmNab9w.js → jobs-B8eat0YU.js} +1 -1
  250. package/dist/webui/assets/{library-vaj2W8sE.js → library-BB0jQ8zn.js} +1 -1
  251. package/dist/webui/assets/{loader-circle-M0gu1gZ-.js → loader-circle-Bz67bJa3.js} +1 -1
  252. package/dist/webui/assets/logs-CeP28848.js +1 -0
  253. package/dist/webui/assets/{search-2R5sIdT8.js → search-BRBIrqaX.js} +1 -1
  254. package/dist/webui/assets/{select-zHgqMzLj.js → select-GZr6C6eZ.js} +1 -1
  255. package/dist/webui/assets/{select-field-BCqNLDrJ.js → select-field-CvT0SYk8.js} +1 -1
  256. package/dist/webui/assets/settings-0ZdYY8g_.js +1 -0
  257. package/dist/webui/assets/{submit-button-BtcnyggQ.js → submit-button-D7DKHqAq.js} +1 -1
  258. package/dist/webui/assets/{switch-G0W3uJVN.js → switch-BeMrf8sh.js} +1 -1
  259. package/dist/webui/assets/{switch-field-IBd9ORNq.js → switch-field-qMXHRKhx.js} +1 -1
  260. package/dist/webui/assets/{table-DvgJU7Gh.js → table-qEFWauuw.js} +1 -1
  261. package/dist/webui/assets/{test-tube-BIwmoM45.js → test-tube-DhD6uWdp.js} +1 -1
  262. package/dist/webui/assets/{text-field-DruSbGhy.js → text-field-ZnKHDUks.js} +1 -1
  263. package/dist/webui/assets/{time-BSMZjmyW.js → time-BM9K_Fbp.js} +1 -1
  264. package/dist/webui/assets/{trackers-D-OpAe63.js → trackers-BjJuAdX3.js} +1 -1
  265. package/dist/webui/assets/{use-form-validation-context-BkAfWAh0.js → use-form-validation-context-D2oA54L_.js} +1 -1
  266. package/dist/webui/assets/{use-settings-form-submit-CDRh-E9U.js → use-settings-form-submit-CXwtE1sI.js} +2 -2
  267. package/dist/webui/assets/useQuery-DD10sbzn.js +1 -0
  268. package/dist/webui/index.html +2 -2
  269. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -1
  270. package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -1
  271. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -1
  272. package/node_modules/@cross-seed/shared/dist/utils.d.ts +3 -0
  273. package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -1
  274. package/node_modules/@cross-seed/shared/dist/utils.js +11 -0
  275. package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -1
  276. package/node_modules/@cross-seed/shared/package.json +3 -1
  277. package/package.json +18 -59
  278. package/LICENSE +0 -201
  279. package/README.md +0 -33
  280. package/dist/webui/assets/check-Bu3ldi63.js +0 -1
  281. package/dist/webui/assets/debug-mz8-WYZj.js +0 -1
  282. package/dist/webui/assets/health-CXbsVrie.js +0 -1
  283. package/dist/webui/assets/index-C-Ul7GNg.css +0 -1
  284. package/dist/webui/assets/index-Cc5bDmJr.js +0 -1
  285. package/dist/webui/assets/logs-Cu9RyKS0.js +0 -1
  286. package/dist/webui/assets/settings-CMYjpTbZ.js +0 -1
  287. package/dist/webui/assets/useQuery-A4Hv_4uX.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}
package/dist/arr.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ import type { Problem } from "./problems.js";
2
+ import { MediaType } from "./constants.js";
3
+ import { Caps } from "./indexers.js";
4
+ import { Result } from "./Result.js";
5
+ import { IdSearchParams } from "./torznab.js";
6
+ export interface ExternalIds {
7
+ imdbId?: string;
8
+ tmdbId?: string;
9
+ tvdbId?: string;
10
+ tvMazeId?: string;
11
+ }
12
+ export declare function arrIdsEqual(a: ExternalIds | undefined, b: ExternalIds | undefined): boolean;
13
+ interface ParsedMovie {
14
+ movie: ExternalIds;
15
+ series: undefined;
16
+ episodes: undefined;
17
+ }
18
+ interface ParsedSeries {
19
+ movie: undefined;
20
+ series: ExternalIds;
21
+ episodes: {
22
+ seasonNumber: number;
23
+ episodeNumber: number;
24
+ }[];
25
+ }
26
+ export type ParsedMedia = ParsedMovie | ParsedSeries;
27
+ export declare function formatFoundIds(foundIds: ExternalIds): string;
28
+ export declare function scanAllArrsForMedia(searcheeTitle: string, mediaType: MediaType): Promise<Result<ParsedMedia, boolean>>;
29
+ export declare function getRelevantArrIds(caps: Caps, parsedMedia: ParsedMedia): IdSearchParams;
30
+ export declare function collectArrProblems(): Promise<Problem[]>;
31
+ export {};
package/dist/arr.js ADDED
@@ -0,0 +1,267 @@
1
+ import chalk from "chalk";
2
+ import ms from "ms";
3
+ import { join as posixJoin } from "node:path/posix";
4
+ import { URLSearchParams } from "node:url";
5
+ import { MediaType, SCENE_TITLE_REGEX, USER_AGENT } from "./constants.js";
6
+ import { Label, logger } from "./logger.js";
7
+ import { resultOf, resultOfErr } from "./Result.js";
8
+ import { getRuntimeConfig } from "./runtimeConfig.js";
9
+ import { cleanseSeparators, getApikey, isTruthy, sanitizeUrl, stripMetaFromName, } from "./utils.js";
10
+ export function arrIdsEqual(a, b) {
11
+ return (a?.imdbId === b?.imdbId &&
12
+ a?.tmdbId === b?.tmdbId &&
13
+ a?.tvdbId === b?.tvdbId &&
14
+ a?.tvMazeId === b?.tvMazeId);
15
+ }
16
+ function getBodySampleMessage(text) {
17
+ const first1000Chars = text.substring(0, 1000);
18
+ if (first1000Chars) {
19
+ return `first 1000 characters: ${first1000Chars}`;
20
+ }
21
+ else {
22
+ return "";
23
+ }
24
+ }
25
+ async function makeArrApiCall(uArrL, resourcePath, params = new URLSearchParams()) {
26
+ const apikey = getApikey(uArrL);
27
+ const url = new URL(sanitizeUrl(uArrL));
28
+ url.pathname = posixJoin(url.pathname, resourcePath);
29
+ for (const [name, value] of params) {
30
+ url.searchParams.set(name, value);
31
+ }
32
+ let response;
33
+ let clonedResponse;
34
+ try {
35
+ response = await fetch(url, {
36
+ signal: AbortSignal.timeout(ms("30 seconds")),
37
+ headers: { "X-Api-Key": apikey, "User-Agent": USER_AGENT },
38
+ });
39
+ clonedResponse = response.clone();
40
+ }
41
+ catch (networkError) {
42
+ if (networkError.name === "AbortError" ||
43
+ networkError.name === "TimeoutError") {
44
+ return resultOfErr(new Error("connection timeout"));
45
+ }
46
+ return resultOfErr(networkError);
47
+ }
48
+ if (!response.ok) {
49
+ const responseText = await response.text();
50
+ const bodySampleMessage = getBodySampleMessage(responseText);
51
+ return resultOfErr(new Error(`${response.status === 401 ? "401 Unauthorized (check apikey)" : response.status} ${response.statusText} ${bodySampleMessage}`));
52
+ }
53
+ try {
54
+ const responseBody = await response.json();
55
+ return resultOf(responseBody);
56
+ }
57
+ catch (e) {
58
+ const responseText = await clonedResponse.text();
59
+ return resultOfErr(new Error(`Arr response was non-JSON. ${getBodySampleMessage(responseText)}`));
60
+ }
61
+ }
62
+ async function getMediaFromArr(uArrL, title) {
63
+ return makeArrApiCall(uArrL, "/api/v3/parse", new URLSearchParams({ title }));
64
+ }
65
+ export function formatFoundIds(foundIds) {
66
+ return Object.entries(foundIds)
67
+ .filter(([idName]) => ["imdbid", "tmdbid", "tvdbid", "tvmazeid"].includes(idName.toLowerCase()))
68
+ .map(([idName, idValue]) => {
69
+ const name = idName.toUpperCase().replace("ID", "");
70
+ const val = idValue ?? "N/A";
71
+ return `${chalk.yellow(name)}=${chalk.white(val)}`;
72
+ })
73
+ .join(" ");
74
+ }
75
+ function logArrQueryResult(externalIds, searchTerm, label, error) {
76
+ if (error) {
77
+ if (!Object.values(externalIds).some(isTruthy)) {
78
+ logger.verbose({
79
+ label: label,
80
+ message: `Lookup failed for ${chalk.yellow(searchTerm)} - ${chalk.red(error.message)} - make sure the item is added to an Arr instance.`,
81
+ });
82
+ return;
83
+ }
84
+ logger.debug({
85
+ label: label,
86
+ message: `Failed to lookup IDs for ${chalk.yellow(searchTerm)} - (${chalk.red(String(error).split(":").slice(1)[0].trim())})`,
87
+ });
88
+ logger.debug(error);
89
+ }
90
+ else {
91
+ const foundIdsStr = formatFoundIds(externalIds);
92
+ logger.verbose({
93
+ label: label,
94
+ message: `Found media for ${chalk.green.bold(searchTerm)} -> ${foundIdsStr}`,
95
+ });
96
+ }
97
+ }
98
+ function getRelevantArrInstances(mediaType) {
99
+ const { sonarr, radarr } = getRuntimeConfig();
100
+ switch (mediaType) {
101
+ case MediaType.SEASON:
102
+ case MediaType.EPISODE:
103
+ return sonarr;
104
+ case MediaType.MOVIE:
105
+ return radarr;
106
+ case MediaType.ANIME:
107
+ case MediaType.VIDEO:
108
+ return [...sonarr, ...radarr];
109
+ default:
110
+ return [];
111
+ }
112
+ }
113
+ export async function scanAllArrsForMedia(searcheeTitle, mediaType) {
114
+ const uArrLs = getRelevantArrInstances(mediaType);
115
+ if (uArrLs.length === 0) {
116
+ return resultOfErr(false);
117
+ }
118
+ const title = mediaType !== MediaType.VIDEO
119
+ ? searcheeTitle.match(SCENE_TITLE_REGEX).groups.title
120
+ : cleanseSeparators(stripMetaFromName(searcheeTitle));
121
+ let error = new Error(`No ids found for ${title} | MediaType: ${mediaType.toUpperCase()}`);
122
+ for (const uArrL of uArrLs) {
123
+ const name = mediaType === MediaType.VIDEO &&
124
+ getRuntimeConfig().sonarr?.includes(uArrL)
125
+ ? `${title} S00E00` // Sonarr needs season or episode
126
+ : title;
127
+ const result = await getMediaFromArr(uArrL, name);
128
+ if (result.isErr()) {
129
+ error = result.unwrapErr();
130
+ continue;
131
+ }
132
+ const response = result.unwrap();
133
+ const ids = response.movie ?? response.series ?? {};
134
+ for (const [key, value] of Object.entries(ids)) {
135
+ if (value === 0 || value === "0") {
136
+ ids[key] = undefined;
137
+ }
138
+ }
139
+ if (Object.values(ids).some(isTruthy)) {
140
+ const label = response.movie ? Label.RADARR : Label.SONARR;
141
+ logArrQueryResult(ids, name, label);
142
+ return resultOf(response);
143
+ }
144
+ }
145
+ logArrQueryResult({}, searcheeTitle, Label.ARRS, error);
146
+ return resultOfErr(false);
147
+ }
148
+ export function getRelevantArrIds(caps, parsedMedia) {
149
+ const idSearchCaps = parsedMedia.movie
150
+ ? caps.movieIdSearch
151
+ : caps.tvIdSearch;
152
+ const ids = parsedMedia.movie ?? parsedMedia.series;
153
+ return {
154
+ tvdbid: idSearchCaps.tvdbId ? ids.tvdbId : undefined,
155
+ tmdbid: idSearchCaps.tmdbId ? ids.tmdbId : undefined,
156
+ imdbid: idSearchCaps.imdbId ? ids.imdbId : undefined,
157
+ tvmazeid: idSearchCaps.tvMazeId ? ids.tvMazeId : undefined,
158
+ };
159
+ }
160
+ function sanitizeDisplayUrl(url) {
161
+ return `${url.origin}${url.pathname}`;
162
+ }
163
+ function normalizeArrBaseUrl(rawUrl) {
164
+ const parsedUrl = new URL(rawUrl);
165
+ parsedUrl.pathname = parsedUrl.pathname.replace(/\/api\/?$/, "") || "/";
166
+ return parsedUrl.toString();
167
+ }
168
+ function arrProblemId(kind, category, index) {
169
+ return `arr:${kind.toLowerCase()}:${category}:${index}`;
170
+ }
171
+ async function checkArrUrl(rawUrl, index, kind) {
172
+ const problems = [];
173
+ let parsedUrl;
174
+ try {
175
+ parsedUrl = new URL(rawUrl);
176
+ }
177
+ catch (error) {
178
+ const message = error instanceof Error
179
+ ? error.message
180
+ : String(error ?? "Unknown error");
181
+ problems.push({
182
+ id: arrProblemId(kind, "invalid-url", index),
183
+ severity: "error",
184
+ summary: `${kind} URL ${index + 1} is invalid.`,
185
+ details: message,
186
+ });
187
+ return problems;
188
+ }
189
+ const displayUrl = sanitizeDisplayUrl(parsedUrl);
190
+ const apiKey = parsedUrl.searchParams.get("apikey");
191
+ if (!apiKey) {
192
+ problems.push({
193
+ id: arrProblemId(kind, "missing-apikey", index),
194
+ severity: "error",
195
+ summary: `${kind} URL is missing an apikey parameter.`,
196
+ details: `Add ?apikey=<KEY> (or &apikey when other parameters exist) to ${displayUrl}.`,
197
+ });
198
+ return problems;
199
+ }
200
+ try {
201
+ const result = await makeArrApiCall(normalizeArrBaseUrl(rawUrl), "/api");
202
+ if (result.isOk()) {
203
+ const body = result.unwrap();
204
+ if (typeof body?.current !== "string" ||
205
+ body.current.length === 0) {
206
+ problems.push({
207
+ id: arrProblemId(kind, "unexpected-response", index),
208
+ severity: "warning",
209
+ summary: `${kind} at ${displayUrl} returned an unexpected response.`,
210
+ details: "cross-seed expected a version string from /api but received something else.",
211
+ });
212
+ }
213
+ }
214
+ else {
215
+ const error = result.unwrapErr();
216
+ problems.push({
217
+ id: arrProblemId(kind, "http-error", index),
218
+ severity: "error",
219
+ summary: `${kind} at ${displayUrl} could not be reached.`,
220
+ details: error.message,
221
+ });
222
+ }
223
+ }
224
+ catch (error) {
225
+ const message = error instanceof Error
226
+ ? error.message
227
+ : String(error ?? "Unknown error");
228
+ const isAbort = typeof error === "object" &&
229
+ error !== null &&
230
+ "name" in error &&
231
+ error.name === "TimeoutError";
232
+ problems.push({
233
+ id: arrProblemId(kind, "network-error", index),
234
+ severity: "error",
235
+ summary: `${kind} at ${displayUrl} could not be reached.`,
236
+ details: isAbort
237
+ ? "The request timed out after 30 seconds."
238
+ : message,
239
+ });
240
+ }
241
+ return problems;
242
+ }
243
+ export async function collectArrProblems() {
244
+ const { sonarr = [], radarr = [] } = getRuntimeConfig();
245
+ const problems = [];
246
+ const hasSonarr = Array.isArray(sonarr) && sonarr.length > 0;
247
+ const hasRadarr = Array.isArray(radarr) && radarr.length > 0;
248
+ if (!hasSonarr && !hasRadarr) {
249
+ problems.push({
250
+ id: "arr:not-configured",
251
+ severity: "info",
252
+ summary: "Sonarr/Radarr integrations are not configured.",
253
+ details: "Configure Arr URLs for more accurate tracker searches.",
254
+ });
255
+ return problems;
256
+ }
257
+ await Promise.all([
258
+ ...sonarr.map((url, index) => checkArrUrl(url, index, "Sonarr")),
259
+ ...radarr.map((url, index) => checkArrUrl(url, index, "Radarr")),
260
+ ]).then((results) => {
261
+ for (const arrProblems of results) {
262
+ problems.push(...arrProblems);
263
+ }
264
+ });
265
+ return problems;
266
+ }
267
+ //# sourceMappingURL=arr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arr.js","sourceRoot":"","sources":["../src/arr.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare function resetApiKey(): Promise<string>;
2
+ export declare function getApiKey(): Promise<string>;
3
+ export declare function checkApiKey(keyToCheck: string): Promise<boolean>;
package/dist/auth.js ADDED
@@ -0,0 +1,28 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { updateDbConfig } from "./dbConfig.js";
3
+ import { getRuntimeConfig } from "./runtimeConfig.js";
4
+ import { db } from "./db.js";
5
+ function generateApiKey() {
6
+ return randomBytes(24).toString("hex");
7
+ }
8
+ export async function resetApiKey() {
9
+ const apikey = generateApiKey();
10
+ await updateDbConfig({ apiKey: apikey });
11
+ return apikey;
12
+ }
13
+ export async function getApiKey() {
14
+ const { apiKey: runtimeConfigApiKey } = getRuntimeConfig();
15
+ if (runtimeConfigApiKey)
16
+ return runtimeConfigApiKey;
17
+ // Fall back to old apikey column (when DB_CONFIG!=true)
18
+ const row = await db("settings").select("apikey").first();
19
+ if (row?.apikey)
20
+ return row.apikey;
21
+ // No API key found anywhere, generate one
22
+ return resetApiKey();
23
+ }
24
+ export async function checkApiKey(keyToCheck) {
25
+ const apikey = await getApiKey();
26
+ return apikey === keyToCheck;
27
+ }
28
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,SAAS,cAAc;IACtB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAChC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC9B,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC3D,IAAI,mBAAmB;QAAE,OAAO,mBAAmB,CAAC;IAEpD,wDAAwD;IACxD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,IAAI,GAAG,EAAE,MAAM;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAEnC,0CAA0C;IAC1C,OAAO,WAAW,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB;IACnD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,OAAO,MAAM,KAAK,UAAU,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { DecisionAnyMatch, InjectionResult } from "../constants.js";
2
+ import { Label } from "../logger.js";
3
+ import { Metafile } from "../parseTorrent.js";
4
+ import { Result } from "../Result.js";
5
+ import { Searchee, SearcheeWithInfoHash } from "../searchee.js";
6
+ import { ClientSearcheeResult, TorrentClient, TorrentMetadataInClient } from "./TorrentClient.js";
7
+ export default class Deluge implements TorrentClient {
8
+ readonly url: string;
9
+ readonly clientHost: string;
10
+ readonly clientPriority: number;
11
+ readonly clientType = Label.DELUGE;
12
+ readonly readonly: boolean;
13
+ readonly label: string;
14
+ private delugeCookie;
15
+ private delugeLabel;
16
+ private delugeLabelSuffix;
17
+ private isLabelEnabled;
18
+ private delugeRequestId;
19
+ constructor(url: string, clientHost: string, priority: number, readonly: boolean);
20
+ /**
21
+ * validates the login and host for deluge webui
22
+ */
23
+ validateConfig(): Promise<void>;
24
+ /**
25
+ * connects and authenticates to the webui
26
+ */
27
+ private authenticate;
28
+ /**
29
+ * ensures authentication and sends JSON-RPC calls to deluge
30
+ * @param method RPC method to send (usually prefaced with module name)
31
+ * @param params parameters for the method (usually in an array)
32
+ * @param retries specify a retry count (optional)
33
+ * @return a promised Result of the specified ResultType or an ErrorType
34
+ */
35
+ private call;
36
+ /**
37
+ * parses the set-cookie header and updates stored value
38
+ * @param headers the headers from a request
39
+ */
40
+ private handleResponseHeaders;
41
+ /**
42
+ * checks enabled plugins for "Label"
43
+ * @return boolean declaring whether the "Label" plugin is enabled
44
+ */
45
+ private labelEnabled;
46
+ /**
47
+ * checks the status of an infohash in the client and resumes if/when criteria is met
48
+ * @param meta MetaFile containing torrent being resumed
49
+ * @param decision decision by which the newTorrent was matched
50
+ * @param options options object for extra flags
51
+ * @param options.checkOnce boolean to only check for resuming once
52
+ * @param options.meta metafile object containing the torrent data
53
+ */
54
+ resumeInjection(meta: Metafile, decision: DecisionAnyMatch, options: {
55
+ checkOnce: boolean;
56
+ }): Promise<void>;
57
+ /**
58
+ * generates the label for injection based on searchee and torrentInfo
59
+ * @param searchee Searchee that contains the originating torrent
60
+ * @param torrentInfo TorrentInfo from the searchee
61
+ * @return string with the label for the newTorrent
62
+ */
63
+ private calculateLabel;
64
+ /**
65
+ * if Label plugin is loaded, adds (if necessary)
66
+ * and sets the label based on torrent hash.
67
+ * @param newTorrent the searchee of the newTorrent
68
+ * @param label the destination label for the newTorrent/searchee
69
+ */
70
+ private setLabel;
71
+ /**
72
+ * injects a torrent into deluge client
73
+ * @param newTorrent injected candidate torrent
74
+ * @param searchee originating torrent (searchee)
75
+ * @param decision decision by which the newTorrent was matched
76
+ * @param options.onlyCompleted boolean to only inject completed torrents
77
+ * @param options.destinationDir location of the linked files (optional)
78
+ * @return InjectionResult of the newTorrent's injection
79
+ */
80
+ inject(newTorrent: Metafile, searchee: Searchee, decision: DecisionAnyMatch, options: {
81
+ onlyCompleted: boolean;
82
+ destinationDir?: string;
83
+ }): Promise<InjectionResult>;
84
+ recheckTorrent(infoHash: string): Promise<void>;
85
+ /**
86
+ * formats the json for rpc calls to inject
87
+ * @param filename filename for the injecting torrent file
88
+ * @param filedump string with encoded torrent file
89
+ * @param destinationDir path to the torrent data
90
+ * @param toRecheck boolean to recheck the torrent
91
+ */
92
+ private formatData;
93
+ /**
94
+ * returns directory of an infohash in deluge as a string
95
+ * @param meta SearcheeWithInfoHash or Metafile for torrent to lookup in client
96
+ * @param options options object for extra flags
97
+ * @param options.onlyCompleted boolean to only return a completed torrent
98
+ * @return Result containing either a string with path or reason it was not provided
99
+ */
100
+ getDownloadDir(meta: SearcheeWithInfoHash | Metafile, options: {
101
+ onlyCompleted: boolean;
102
+ }): Promise<Result<string, "NOT_FOUND" | "TORRENT_NOT_COMPLETE" | "UNKNOWN_ERROR">>;
103
+ /**
104
+ * returns map of hashes and download directories for all torrents
105
+ * @param options.metas array of SearcheeWithInfoHash or Metafile for torrents to lookup in client
106
+ * @param options.onlyCompleted boolean to only return completed torrents
107
+ * @return Promise of a Map with hashes and download directories
108
+ */
109
+ getAllDownloadDirs(options: {
110
+ onlyCompleted: boolean;
111
+ }): Promise<Map<string, string>>;
112
+ /**
113
+ * checks if a torrent exists in deluge
114
+ * @param inputHash the infoHash of the torrent to check
115
+ * @return Result containing either a boolean or reason it was not provided
116
+ */
117
+ isTorrentInClient(inputHash: string): Promise<Result<boolean, Error>>;
118
+ /**
119
+ * checks if a torrent is complete in deluge
120
+ * @param infoHash the infoHash of the torrent to check
121
+ * @return Result containing either a boolean or reason it was not provided
122
+ */
123
+ isTorrentComplete(infoHash: string): Promise<Result<boolean, "NOT_FOUND">>;
124
+ /**
125
+ * checks if a torrent is checking in deluge
126
+ * @param infoHash the infoHash of the torrent to check
127
+ * @return Result containing either a boolean or reason it was not provided
128
+ */
129
+ isTorrentChecking(infoHash: string): Promise<Result<boolean, "NOT_FOUND">>;
130
+ /**
131
+ * @return All torrents in the client
132
+ */
133
+ getAllTorrents(): Promise<TorrentMetadataInClient[]>;
134
+ /**
135
+ * Get all searchees from the client and update the db
136
+ * @param options.newSearcheesOnly only return searchees that are not in the db
137
+ * @param options.refresh undefined uses the cache, [] refreshes all searchees, or a list of infoHashes to refresh
138
+ * @return an object containing all searchees and new searchees (refreshed searchees are considered new)
139
+ */
140
+ getClientSearchees(options?: {
141
+ newSearcheesOnly?: boolean;
142
+ refresh?: string[];
143
+ }): Promise<ClientSearcheeResult>;
144
+ /**
145
+ * returns information needed to complete/validate injection
146
+ * @return Promise of TorrentInfo type
147
+ * @param infoHash infohash to query for in the client
148
+ * @param options options object for extra flags
149
+ * @param options.useVerbose use verbose instead of error logging
150
+ * @return Promise of TorrentInfo type
151
+ */
152
+ private getTorrentInfo;
153
+ }