cross-seed 6.13.6 → 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 (255) hide show
  1. package/dist/Result.d.ts +27 -0
  2. package/dist/action.d.ts +34 -0
  3. package/dist/action.js +2 -1
  4. package/dist/action.js.map +1 -1
  5. package/dist/arr.d.ts +31 -0
  6. package/dist/arr.js +107 -39
  7. package/dist/arr.js.map +1 -1
  8. package/dist/auth.d.ts +3 -0
  9. package/dist/auth.js +9 -6
  10. package/dist/auth.js.map +1 -1
  11. package/dist/clients/Deluge.d.ts +153 -0
  12. package/dist/clients/Deluge.js +8 -7
  13. package/dist/clients/Deluge.js.map +1 -1
  14. package/dist/clients/QBittorrent.d.ts +218 -0
  15. package/dist/clients/QBittorrent.js +3 -2
  16. package/dist/clients/QBittorrent.js.map +1 -1
  17. package/dist/clients/RTorrent.d.ts +43 -0
  18. package/dist/clients/RTorrent.js +8 -4
  19. package/dist/clients/RTorrent.js.map +1 -1
  20. package/dist/clients/TorrentClient.d.ts +108 -0
  21. package/dist/clients/TorrentClient.js +137 -67
  22. package/dist/clients/TorrentClient.js.map +1 -1
  23. package/dist/clients/Transmission.d.ts +43 -0
  24. package/dist/clients/Transmission.js +4 -3
  25. package/dist/clients/Transmission.js.map +1 -1
  26. package/dist/cmd.d.ts +2 -0
  27. package/dist/cmd.js +42 -110
  28. package/dist/cmd.js.map +1 -1
  29. package/dist/configSchema.d.ts +1 -0
  30. package/dist/configSchema.js +1 -666
  31. package/dist/configSchema.js.map +1 -1
  32. package/dist/configuration.d.ts +63 -0
  33. package/dist/configuration.js +263 -24
  34. package/dist/configuration.js.map +1 -1
  35. package/dist/constants.d.ts +108 -0
  36. package/dist/constants.js +2 -32
  37. package/dist/constants.js.map +1 -1
  38. package/dist/dataFiles.d.ts +8 -0
  39. package/dist/dataFiles.js +21 -6
  40. package/dist/dataFiles.js.map +1 -1
  41. package/dist/db.d.ts +14 -0
  42. package/dist/db.js +76 -5
  43. package/dist/db.js.map +1 -1
  44. package/dist/dbConfig.d.ts +4 -0
  45. package/dist/dbConfig.js +67 -0
  46. package/dist/dbConfig.js.map +1 -0
  47. package/dist/decide.d.ts +25 -0
  48. package/dist/decide.js +4 -4
  49. package/dist/decide.js.map +1 -1
  50. package/dist/diagnostics/db.d.ts +21 -0
  51. package/dist/diagnostics/db.js +107 -0
  52. package/dist/diagnostics/db.js.map +1 -0
  53. package/dist/diff.d.ts +1 -0
  54. package/dist/errors.d.ts +3 -0
  55. package/dist/errors.js +0 -9
  56. package/dist/errors.js.map +1 -1
  57. package/dist/indexers.d.ts +105 -0
  58. package/dist/indexers.js +82 -14
  59. package/dist/indexers.js.map +1 -1
  60. package/dist/inject.d.ts +2 -0
  61. package/dist/jobs.d.ts +29 -0
  62. package/dist/jobs.js +14 -9
  63. package/dist/jobs.js.map +1 -1
  64. package/dist/logger.d.ts +29 -0
  65. package/dist/logger.js +18 -4
  66. package/dist/logger.js.map +1 -1
  67. package/dist/migrations/00-initialSchema.d.ts +9 -0
  68. package/dist/migrations/01-jobs.d.ts +9 -0
  69. package/dist/migrations/02-timestamps.d.ts +9 -0
  70. package/dist/migrations/03-rateLimits.d.ts +9 -0
  71. package/dist/migrations/04-auth.d.ts +9 -0
  72. package/dist/migrations/04-auth.js +1 -1
  73. package/dist/migrations/04-auth.js.map +1 -1
  74. package/dist/migrations/05-caps.d.ts +9 -0
  75. package/dist/migrations/06-uniqueDecisions.d.ts +9 -0
  76. package/dist/migrations/07-limits.d.ts +9 -0
  77. package/dist/migrations/08-rss.d.ts +9 -0
  78. package/dist/migrations/09-clientAndDataSearchees.d.ts +9 -0
  79. package/dist/migrations/10-indexerNameAudioBookCaps.d.ts +9 -0
  80. package/dist/migrations/11-trackers.d.ts +9 -0
  81. package/dist/migrations/12-user-auth.d.ts +9 -0
  82. package/dist/migrations/12-user-auth.js +22 -0
  83. package/dist/migrations/12-user-auth.js.map +1 -0
  84. package/dist/migrations/13-settings.d.ts +9 -0
  85. package/dist/migrations/13-settings.js +23 -0
  86. package/dist/migrations/13-settings.js.map +1 -0
  87. package/dist/migrations/14-indexer-enabled-flag.d.ts +9 -0
  88. package/dist/migrations/14-indexer-enabled-flag.js +12 -0
  89. package/dist/migrations/14-indexer-enabled-flag.js.map +1 -0
  90. package/dist/migrations/15-remove-url-unique-constraint.d.ts +9 -0
  91. package/dist/migrations/15-remove-url-unique-constraint.js +14 -0
  92. package/dist/migrations/15-remove-url-unique-constraint.js.map +1 -0
  93. package/dist/migrations/16-prune-inactive-indexers.d.ts +9 -0
  94. package/dist/migrations/16-prune-inactive-indexers.js +17 -0
  95. package/dist/migrations/16-prune-inactive-indexers.js.map +1 -0
  96. package/dist/migrations/migrations.d.ts +13 -0
  97. package/dist/migrations/migrations.js +10 -0
  98. package/dist/migrations/migrations.js.map +1 -1
  99. package/dist/parseTorrent.d.ts +53 -0
  100. package/dist/pipeline.d.ts +41 -0
  101. package/dist/pipeline.js +64 -13
  102. package/dist/pipeline.js.map +1 -1
  103. package/dist/preFilter.d.ts +25 -0
  104. package/dist/preFilter.js +15 -15
  105. package/dist/preFilter.js.map +1 -1
  106. package/dist/problems/linking.d.ts +2 -0
  107. package/dist/problems/linking.js +80 -0
  108. package/dist/problems/linking.js.map +1 -0
  109. package/dist/problems/path.d.ts +22 -0
  110. package/dist/problems/path.js +96 -0
  111. package/dist/problems/path.js.map +1 -0
  112. package/dist/problems.d.ts +13 -0
  113. package/dist/problems.js +48 -0
  114. package/dist/problems.js.map +1 -0
  115. package/dist/pushNotifier.d.ts +19 -0
  116. package/dist/routes/baseApi.d.ts +2 -0
  117. package/dist/routes/baseApi.js +354 -0
  118. package/dist/routes/baseApi.js.map +1 -0
  119. package/dist/routes/indexerApi.d.ts +6 -0
  120. package/dist/routes/indexerApi.js +165 -0
  121. package/dist/routes/indexerApi.js.map +1 -0
  122. package/dist/routes/staticFrontendPlugin.d.ts +4 -0
  123. package/dist/routes/staticFrontendPlugin.js +61 -0
  124. package/dist/routes/staticFrontendPlugin.js.map +1 -0
  125. package/dist/runtimeConfig.d.ts +6 -0
  126. package/dist/runtimeConfig.js +17 -1
  127. package/dist/runtimeConfig.js.map +1 -1
  128. package/dist/searchee.d.ts +108 -0
  129. package/dist/searchee.js +38 -6
  130. package/dist/searchee.js.map +1 -1
  131. package/dist/server.d.ts +4 -0
  132. package/dist/server.js +38 -429
  133. package/dist/server.js.map +1 -1
  134. package/dist/services/indexerService.d.ts +96 -0
  135. package/dist/services/indexerService.js +287 -0
  136. package/dist/services/indexerService.js.map +1 -0
  137. package/dist/sessionCookies.d.ts +5 -0
  138. package/dist/sessionCookies.js +27 -0
  139. package/dist/sessionCookies.js.map +1 -0
  140. package/dist/startup.d.ts +25 -0
  141. package/dist/startup.js +105 -151
  142. package/dist/startup.js.map +1 -1
  143. package/dist/torrent.d.ts +69 -0
  144. package/dist/torrent.js +17 -13
  145. package/dist/torrent.js.map +1 -1
  146. package/dist/torznab.d.ts +60 -0
  147. package/dist/torznab.js +14 -89
  148. package/dist/torznab.js.map +1 -1
  149. package/dist/trpc/fastifyAdapter.d.ts +2 -0
  150. package/dist/trpc/fastifyAdapter.js +9 -0
  151. package/dist/trpc/fastifyAdapter.js.map +1 -0
  152. package/dist/trpc/index.d.ts +49 -0
  153. package/dist/trpc/index.js +53 -0
  154. package/dist/trpc/index.js.map +1 -0
  155. package/dist/trpc/routers/auth.d.ts +43 -0
  156. package/dist/trpc/routers/auth.js +116 -0
  157. package/dist/trpc/routers/auth.js.map +1 -0
  158. package/dist/trpc/routers/clients.d.ts +21 -0
  159. package/dist/trpc/routers/clients.js +65 -0
  160. package/dist/trpc/routers/clients.js.map +1 -0
  161. package/dist/trpc/routers/health.d.ts +17 -0
  162. package/dist/trpc/routers/health.js +24 -0
  163. package/dist/trpc/routers/health.js.map +1 -0
  164. package/dist/trpc/routers/index.d.ts +394 -0
  165. package/dist/trpc/routers/index.js +23 -0
  166. package/dist/trpc/routers/index.js.map +1 -0
  167. package/dist/trpc/routers/indexers.d.ts +75 -0
  168. package/dist/trpc/routers/indexers.js +79 -0
  169. package/dist/trpc/routers/indexers.js.map +1 -0
  170. package/dist/trpc/routers/jobs.d.ts +33 -0
  171. package/dist/trpc/routers/jobs.js +84 -0
  172. package/dist/trpc/routers/jobs.js.map +1 -0
  173. package/dist/trpc/routers/logs.d.ts +27 -0
  174. package/dist/trpc/routers/logs.js +91 -0
  175. package/dist/trpc/routers/logs.js.map +1 -0
  176. package/dist/trpc/routers/searchees.d.ts +51 -0
  177. package/dist/trpc/routers/searchees.js +156 -0
  178. package/dist/trpc/routers/searchees.js.map +1 -0
  179. package/dist/trpc/routers/settings.d.ts +83 -0
  180. package/dist/trpc/routers/settings.js +92 -0
  181. package/dist/trpc/routers/settings.js.map +1 -0
  182. package/dist/trpc/routers/stats.d.ts +42 -0
  183. package/dist/trpc/routers/stats.js +102 -0
  184. package/dist/trpc/routers/stats.js.map +1 -0
  185. package/dist/userAuth.d.ts +21 -0
  186. package/dist/userAuth.js +86 -0
  187. package/dist/userAuth.js.map +1 -0
  188. package/dist/utils/authUtils.d.ts +10 -0
  189. package/dist/utils/authUtils.js +24 -0
  190. package/dist/utils/authUtils.js.map +1 -0
  191. package/dist/utils/logWatcher.d.ts +28 -0
  192. package/dist/utils/logWatcher.js +229 -0
  193. package/dist/utils/logWatcher.js.map +1 -0
  194. package/dist/utils/object.d.ts +1 -0
  195. package/dist/utils/object.js +4 -0
  196. package/dist/utils/object.js.map +1 -0
  197. package/dist/utils.d.ts +172 -0
  198. package/dist/utils.js +61 -50
  199. package/dist/utils.js.map +1 -1
  200. package/dist/webui/assets/FieldInfo-sRlPRNSK.js +1 -0
  201. package/dist/webui/assets/Page-B68mlTwU.js +1 -0
  202. package/dist/webui/assets/array-field-BCFMrvoU.js +1 -0
  203. package/dist/webui/assets/badge-C5YCxEzP.js +1 -0
  204. package/dist/webui/assets/check-NQsw6yBl.js +1 -0
  205. package/dist/webui/assets/chevron-down-8PGvFYxV.js +1 -0
  206. package/dist/webui/assets/clients-DnVpwApe.js +1 -0
  207. package/dist/webui/assets/connect-wMg2zyz6.js +1 -0
  208. package/dist/webui/assets/debug-BrjwiEi2.js +1 -0
  209. package/dist/webui/assets/directories-CHpJCWNR.js +1 -0
  210. package/dist/webui/assets/duration-field-DIkKt3iw.js +1 -0
  211. package/dist/webui/assets/general-uZrUIxbI.js +1 -0
  212. package/dist/webui/assets/health-_MuvAyjo.js +1 -0
  213. package/dist/webui/assets/index-B41DM2T5.css +1 -0
  214. package/dist/webui/assets/index-BBzHsn7u.js +1 -0
  215. package/dist/webui/assets/index-Ncy0-Qo7.js +54 -0
  216. package/dist/webui/assets/index-pKWy6v1P.js +1 -0
  217. package/dist/webui/assets/jobs-B8eat0YU.js +1 -0
  218. package/dist/webui/assets/library-BB0jQ8zn.js +1 -0
  219. package/dist/webui/assets/loader-circle-Bz67bJa3.js +1 -0
  220. package/dist/webui/assets/logs-CeP28848.js +1 -0
  221. package/dist/webui/assets/search-BRBIrqaX.js +1 -0
  222. package/dist/webui/assets/select-GZr6C6eZ.js +1 -0
  223. package/dist/webui/assets/select-field-CvT0SYk8.js +1 -0
  224. package/dist/webui/assets/settings-0ZdYY8g_.js +1 -0
  225. package/dist/webui/assets/submit-button-D7DKHqAq.js +1 -0
  226. package/dist/webui/assets/switch-BeMrf8sh.js +1 -0
  227. package/dist/webui/assets/switch-field-qMXHRKhx.js +1 -0
  228. package/dist/webui/assets/table-qEFWauuw.js +1 -0
  229. package/dist/webui/assets/test-tube-DhD6uWdp.js +1 -0
  230. package/dist/webui/assets/text-field-ZnKHDUks.js +1 -0
  231. package/dist/webui/assets/time-BM9K_Fbp.js +1 -0
  232. package/dist/webui/assets/trackers-BjJuAdX3.js +7 -0
  233. package/dist/webui/assets/use-form-validation-context-D2oA54L_.js +1 -0
  234. package/dist/webui/assets/use-settings-form-submit-CXwtE1sI.js +2 -0
  235. package/dist/webui/assets/useQuery-DD10sbzn.js +1 -0
  236. package/dist/webui/index.html +13 -0
  237. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts +261 -0
  238. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -0
  239. package/node_modules/@cross-seed/shared/dist/configSchema.js +53 -0
  240. package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -0
  241. package/node_modules/@cross-seed/shared/dist/constants.d.ts +122 -0
  242. package/node_modules/@cross-seed/shared/dist/constants.d.ts.map +1 -0
  243. package/node_modules/@cross-seed/shared/dist/constants.js +127 -0
  244. package/node_modules/@cross-seed/shared/dist/constants.js.map +1 -0
  245. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -0
  246. package/node_modules/@cross-seed/shared/dist/utils.d.ts +9 -0
  247. package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -0
  248. package/node_modules/@cross-seed/shared/dist/utils.js +20 -0
  249. package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -0
  250. package/node_modules/@cross-seed/shared/package.json +24 -0
  251. package/package.json +25 -42
  252. package/LICENSE +0 -201
  253. package/README.md +0 -34
  254. package/dist/config.template.cjs +0 -353
  255. package/dist/config.template.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(): void;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -4,7 +4,7 @@ async function up(knex) {
4
4
  table.check("id = 0");
5
5
  table.string("apikey");
6
6
  });
7
- await knex("settings").insert({ id: 0 });
7
+ await knex.raw("INSERT INTO settings (id, apikey) VALUES (0, '')");
8
8
  }
9
9
  async function down(knex) {
10
10
  await knex.schema.dropTable("settings");
@@ -1 +1 @@
1
- {"version":3,"file":"04-auth.js","sourceRoot":"","sources":["../../src/migrations/04-auth.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"04-auth.js","sourceRoot":"","sources":["../../src/migrations/04-auth.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,22 @@
1
+ async function up(knex) {
2
+ // Create user table (singular naming)
3
+ await knex.schema.createTable("user", (table) => {
4
+ table.increments("id").primary();
5
+ table.string("username").unique().notNullable();
6
+ table.string("password").notNullable();
7
+ table.timestamp("created_at").defaultTo(knex.fn.now()).notNullable();
8
+ });
9
+ // Create session table (singular naming)
10
+ await knex.schema.createTable("session", (table) => {
11
+ table.string("id").primary();
12
+ table.integer("user_id").notNullable().references("id").inTable("user");
13
+ table.integer("expires_at").notNullable();
14
+ table.integer("created_at").notNullable();
15
+ });
16
+ }
17
+ async function down(knex) {
18
+ await knex.schema.dropTable("session");
19
+ await knex.schema.dropTable("user");
20
+ }
21
+ export default { name: "12-user-auth", up, down };
22
+ //# sourceMappingURL=12-user-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"12-user-auth.js","sourceRoot":"","sources":["../../src/migrations/12-user-auth.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,sCAAsC;IACtC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,23 @@
1
+ async function up(knex) {
2
+ await knex.schema.alterTable("settings", (table) => {
3
+ table.json("settings_json");
4
+ });
5
+ // Add performance indices for stats queries
6
+ await knex.schema.alterTable("decision", (table) => {
7
+ table.index("decision", "idx_decision_decision");
8
+ table.index("last_seen", "idx_decision_last_seen");
9
+ table.index(["decision", "last_seen"], "idx_decision_decision_last_seen");
10
+ });
11
+ }
12
+ async function down(knex) {
13
+ await knex.schema.alterTable("decision", (table) => {
14
+ table.dropIndex(["decision", "last_seen"], "idx_decision_decision_last_seen");
15
+ table.dropIndex("last_seen", "idx_decision_last_seen");
16
+ table.dropIndex("decision", "idx_decision_decision");
17
+ });
18
+ await knex.schema.alterTable("settings", (table) => {
19
+ table.dropColumn("settings_json");
20
+ });
21
+ }
22
+ export default { name: "13-settings", up, down };
23
+ //# sourceMappingURL=13-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"13-settings.js","sourceRoot":"","sources":["../../src/migrations/13-settings.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;QACjD,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QACnD,KAAK,CAAC,KAAK,CACV,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,iCAAiC,CACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,SAAS,CACd,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,iCAAiC,CACjC,CAAC;QACF,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QACvD,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import knex from "knex";
2
+ export declare function up(knex: knex.Knex): Promise<void>;
3
+ export declare function down(knex: knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,12 @@
1
+ export async function up(knex) {
2
+ await knex.schema.alterTable("indexer", (table) => {
3
+ table.boolean("enabled").notNullable().defaultTo(true);
4
+ });
5
+ }
6
+ export async function down(knex) {
7
+ await knex.schema.alterTable("indexer", (table) => {
8
+ table.dropColumn("enabled");
9
+ });
10
+ }
11
+ export default { name: "14-indexer-enabled-flag", up, down };
12
+ //# sourceMappingURL=14-indexer-enabled-flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"14-indexer-enabled-flag.js","sourceRoot":"","sources":["../../src/migrations/14-indexer-enabled-flag.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAe;IACvC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAe;IACzC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Knex from "knex";
2
+ declare function up(knex: Knex.Knex): Promise<void>;
3
+ declare function down(knex: Knex.Knex): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,14 @@
1
+ async function up(knex) {
2
+ // Drop the unique constraint on the url column
3
+ await knex.schema.alterTable("indexer", (table) => {
4
+ table.dropUnique(["url"]);
5
+ });
6
+ }
7
+ async function down(knex) {
8
+ // Re-add the unique constraint on the url column
9
+ await knex.schema.alterTable("indexer", (table) => {
10
+ table.unique(["url"]);
11
+ });
12
+ }
13
+ export default { name: "15-remove-url-unique-constraint", up, down };
14
+ //# sourceMappingURL=15-remove-url-unique-constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"15-remove-url-unique-constraint.js","sourceRoot":"","sources":["../../src/migrations/15-remove-url-unique-constraint.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,+CAA+C;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,iDAAiD;IACjD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,iCAAiC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import knex from "knex";
2
+ export declare function up(knex: knex.Knex): Promise<void>;
3
+ export declare function down(): Promise<void>;
4
+ declare const _default: {
5
+ name: string;
6
+ up: typeof up;
7
+ down: typeof down;
8
+ };
9
+ export default _default;
@@ -0,0 +1,17 @@
1
+ export async function up(knex) {
2
+ await knex.transaction(async (trx) => {
3
+ const inactiveIds = await trx("indexer")
4
+ .whereRaw("active = 0")
5
+ .select("id");
6
+ if (inactiveIds.length) {
7
+ const ids = inactiveIds.map((row) => row.id);
8
+ await trx("timestamp").whereIn("indexer_id", ids).del();
9
+ await trx("rss").whereIn("indexer_id", ids).del();
10
+ await trx("indexer").whereIn("id", ids).del();
11
+ }
12
+ await trx.raw("UPDATE indexer SET active = NULL");
13
+ });
14
+ }
15
+ export async function down() { }
16
+ export default { name: "16-prune-inactive-indexers", up, down };
17
+ //# sourceMappingURL=16-prune-inactive-indexers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"16-prune-inactive-indexers.js","sourceRoot":"","sources":["../../src/migrations/16-prune-inactive-indexers.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAe;IACvC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC;aACtC,QAAQ,CAAC,YAAY,CAAC;aACtB,MAAM,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACxD,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,KAAmB,CAAC;AAE9C,eAAe,EAAE,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const migrations: {
2
+ getMigrations: () => Promise<({
3
+ name: string;
4
+ up: (knex: import("knex").Knex) => Promise<void>;
5
+ down: (knex: import("knex").Knex) => Promise<void>;
6
+ } | {
7
+ name: string;
8
+ up: (knex: import("knex").Knex) => Promise<void>;
9
+ down: () => void;
10
+ })[]>;
11
+ getMigrationName: (migration: any) => any;
12
+ getMigration: (migration: any) => any;
13
+ };
@@ -10,6 +10,11 @@ import rss from "./08-rss.js";
10
10
  import clientAndDataSearchees from "./09-clientAndDataSearchees.js";
11
11
  import indexerNameAudioBookCaps from "./10-indexerNameAudioBookCaps.js";
12
12
  import trackers from "./11-trackers.js";
13
+ import userAuth from "./12-user-auth.js";
14
+ import settings from "./13-settings.js";
15
+ import indexerEnabledFlag from "./14-indexer-enabled-flag.js";
16
+ import removeUrlUniqueConstraint from "./15-remove-url-unique-constraint.js";
17
+ import pruneInactiveIndexers from "./16-prune-inactive-indexers.js";
13
18
  export const migrations = {
14
19
  getMigrations: () => Promise.resolve([
15
20
  initialSchema,
@@ -24,6 +29,11 @@ export const migrations = {
24
29
  clientAndDataSearchees,
25
30
  indexerNameAudioBookCaps,
26
31
  trackers,
32
+ userAuth,
33
+ settings,
34
+ indexerEnabledFlag,
35
+ removeUrlUniqueConstraint,
36
+ pruneInactiveIndexers,
27
37
  ]),
28
38
  getMigrationName: (migration) => migration.name,
29
39
  getMigration: (migration) => migration,
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,aAAa,EAAE,GAAG,EAAE,CACnB,OAAO,CAAC,OAAO,CAAC;QACf,aAAa;QACb,IAAI;QACJ,UAAU;QACV,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,eAAe;QACf,MAAM;QACN,GAAG;QACH,sBAAsB;QACtB,wBAAwB;QACxB,QAAQ;KACR,CAAC;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI;IAC/C,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS;CACtC,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,yBAAyB,MAAM,sCAAsC,CAAC;AAC7E,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,aAAa,EAAE,GAAG,EAAE,CACnB,OAAO,CAAC,OAAO,CAAC;QACf,aAAa;QACb,IAAI;QACJ,UAAU;QACV,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,eAAe;QACf,MAAM;QACN,GAAG;QACH,sBAAsB;QACtB,wBAAwB;QACxB,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;KACrB,CAAC;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI;IAC/C,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS;CACtC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { File } from "./searchee.js";
2
+ interface TorrentDirent {
3
+ length: number;
4
+ path?: Buffer[];
5
+ "path.utf-8"?: Buffer[];
6
+ }
7
+ export interface Torrent {
8
+ info: {
9
+ "name.utf-8"?: Buffer;
10
+ name?: Buffer;
11
+ "piece length": number;
12
+ pieces: Buffer;
13
+ files?: TorrentDirent[];
14
+ length?: number;
15
+ private: number;
16
+ };
17
+ comment?: Buffer | string;
18
+ announce?: Buffer;
19
+ "announce-list"?: Buffer[][];
20
+ }
21
+ /**
22
+ * "Fastresume" for all clients. Used to get torrent info.
23
+ * qBittorrent: .fastresume, Transmission: .resume, rTorrent: .rtorrent
24
+ * Deluge doesn't store labels in fastresume, but in label.conf
25
+ */
26
+ interface TorrentMetadata {
27
+ trackers?: Buffer[][];
28
+ "qBt-category"?: Buffer;
29
+ "qBt-tags"?: Buffer;
30
+ }
31
+ export declare function updateMetafileMetadata(metafile: Metafile, metadata: TorrentMetadata): void;
32
+ export declare function sanitizeTrackerUrl(url: string): string | null;
33
+ export declare class Metafile {
34
+ infoHash: string;
35
+ length: number;
36
+ name: string;
37
+ /**
38
+ * Always name, exists for compatibility with Searchee
39
+ */
40
+ title: string;
41
+ pieceLength: number;
42
+ files: File[];
43
+ isSingleFileTorrent: boolean;
44
+ category?: string;
45
+ tags?: string[];
46
+ trackers: string[];
47
+ raw: Torrent;
48
+ constructor(raw: Torrent);
49
+ static decode(buf: Buffer): Metafile;
50
+ getFileSystemSafeName(): string;
51
+ encode(): Buffer;
52
+ }
53
+ export {};
@@ -0,0 +1,41 @@
1
+ import { ActionResult, Decision, DecisionAnyMatch } from "./constants.js";
2
+ import { ResultAssessment } from "./decide.js";
3
+ import { RuntimeConfig } from "./runtimeConfig.js";
4
+ import { SearcheeLabel, SearcheeWithLabel } from "./searchee.js";
5
+ import { TorrentLocator } from "./torrent.js";
6
+ import { WithRequired } from "./utils.js";
7
+ export interface Candidate {
8
+ name: string;
9
+ guid: string;
10
+ link: string;
11
+ tracker: string;
12
+ size?: number;
13
+ pubDate?: number;
14
+ indexerId?: number;
15
+ cookie?: string;
16
+ }
17
+ export type CandidateWithIndexerId = WithRequired<Candidate, "indexerId">;
18
+ export interface AssessmentWithTracker {
19
+ assessment: ResultAssessment;
20
+ tracker: string;
21
+ }
22
+ export declare function searchForLocalTorrentByCriteria(criteria: TorrentLocator, options: {
23
+ configOverride: Partial<RuntimeConfig>;
24
+ ignoreCrossSeeds: boolean;
25
+ }): Promise<number | null>;
26
+ export declare function checkNewCandidateMatch(candidate: Candidate, searcheeLabel: SearcheeLabel): Promise<{
27
+ decision: DecisionAnyMatch | Decision.INFO_HASH_ALREADY_EXISTS | null;
28
+ actionResult: ActionResult | null;
29
+ }>;
30
+ export declare function findAllSearchees(searcheeLabel: SearcheeLabel): Promise<SearcheeWithLabel[]>;
31
+ export declare function bulkSearch(options?: {
32
+ configOverride: Partial<RuntimeConfig>;
33
+ }): Promise<void>;
34
+ export declare function bulkSearchByNames(names: string[], options?: {
35
+ configOverride?: Partial<RuntimeConfig>;
36
+ }): Promise<{
37
+ attempted: number;
38
+ totalFound: number;
39
+ requested: number;
40
+ }>;
41
+ export declare function scanRssFeeds(): Promise<void>;
package/dist/pipeline.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import chalk from "chalk";
2
2
  import { stat } from "fs/promises";
3
- import { zip } from "lodash-es";
3
+ import { humanReadableSize } from "@cross-seed/shared/utils";
4
+ // Utility function to replace lodash zip
5
+ function zip(arr1, arr2, arr3) {
6
+ return arr1.map((item, index) => [item, arr2[index], arr3[index]]);
7
+ }
4
8
  import ms from "ms";
5
9
  import { basename } from "path";
6
10
  import { performAction, performActions } from "./action.js";
@@ -9,7 +13,7 @@ import { Decision, InjectionResult, isAnyMatchedDecision, SaveResult, } from "./
9
13
  import { findPotentialNestedRoots, findSearcheesFromAllDataDirs, } from "./dataFiles.js";
10
14
  import { db } from "./db.js";
11
15
  import { assessCandidateCaching, getGuidInfoHashMap, } from "./decide.js";
12
- import { getActiveIndexers, IndexerStatus, updateIndexerStatus, updateSearchTimestamps, } from "./indexers.js";
16
+ import { getAllIndexers, IndexerStatus, updateIndexerStatus, updateSearchTimestamps, } from "./indexers.js";
13
17
  import { getJobLastRun, JobName } from "./jobs.js";
14
18
  import { Label, logger } from "./logger.js";
15
19
  import { filterByContent, filterDupesFromSimilar, filterTimestamps, } from "./preFilter.js";
@@ -19,7 +23,8 @@ import { getRuntimeConfig } from "./runtimeConfig.js";
19
23
  import { createEnsembleSearchees, createSearcheeFromPath, createSearcheeFromTorrentFile, getNewestFileAge, getSeasonKeys, } from "./searchee.js";
20
24
  import { getInfoHashesToExclude, getSimilarByName, getTorrentByCriteria, indexTorrentsAndDataDirs, loadTorrentDirLight, } from "./torrent.js";
21
25
  import { getSearchString, queryRssFeeds, searchTorznab, } from "./torznab.js";
22
- import { AsyncSemaphore, comparing, filterAsync, flatMapAsync, formatAsList, getLogString, humanReadableDate, humanReadableSize, inBatches, isTruthy, mapAsync, Mutex, notExists, reduceAsync, stripExtension, withMutex, } from "./utils.js";
26
+ import { getEnabledIndexers } from "./indexers.js";
27
+ import { AsyncSemaphore, comparing, filterAsync, flatMapAsync, formatAsList, getLogString, humanReadableDate, inBatches, isTruthy, mapAsync, Mutex, notExists, reduceAsync, stripExtension, withMutex, } from "./utils.js";
23
28
  async function assessCandidates(candidates, searchee, infoHashesToExclude, options) {
24
29
  const guidInfoHashMap = await getGuidInfoHashMap();
25
30
  const candidatesByIndexer = candidates.reduce((acc, cur) => {
@@ -57,12 +62,12 @@ async function findOnOtherSites(searchee, infoHashesToExclude, indexerSearchCoun
57
62
  });
58
63
  }
59
64
  const assessments = await assessCandidates(candidates, searchee, infoHashesToExclude, options);
60
- const activeIndexers = await getActiveIndexers();
65
+ const allIndexers = await getAllIndexers();
61
66
  const rateLimitedNames = new Set();
62
67
  const { rateLimited, notRateLimited } = assessments.reduce((acc, cur, idx) => {
63
68
  const candidate = candidates[idx];
64
69
  if (cur.assessment.decision === Decision.RATE_LIMITED) {
65
- const indexer = activeIndexers.find((i) => i.id === candidate.indexerId);
70
+ const indexer = allIndexers.find((i) => i.id === candidate.indexerId);
66
71
  rateLimitedNames.add(indexer.name ?? indexer.url);
67
72
  acc.rateLimited.add(candidate.indexerId);
68
73
  acc.notRateLimited.delete(candidate.indexerId);
@@ -394,9 +399,12 @@ export async function findAllSearchees(searcheeLabel) {
394
399
  const clients = getClients();
395
400
  let rawSearchees = [];
396
401
  await withMutex(Mutex.CREATE_ALL_SEARCHEES, { useQueue: true }, async () => {
397
- if (Array.isArray(torrents)) {
402
+ const explicitTorrents = Array.isArray(torrents)
403
+ ? torrents.map((torrent) => torrent.trim()).filter(Boolean)
404
+ : [];
405
+ if (explicitTorrents.length) {
398
406
  const torrentInfos = await flatMapAsync(clients, (client) => client.getAllTorrents());
399
- rawSearchees.push(...(await mapAsync(torrents, (torrent) => createSearcheeFromTorrentFile(torrent, torrentInfos)))
407
+ rawSearchees.push(...(await mapAsync(explicitTorrents, (torrent) => createSearcheeFromTorrentFile(torrent, torrentInfos)))
400
408
  .filter(isOk)
401
409
  .map((r) => r.unwrap()));
402
410
  }
@@ -489,20 +497,63 @@ async function findSearchableTorrents(options) {
489
497
  return { searchees: finalSearchees, infoHashesToExclude };
490
498
  }
491
499
  export async function bulkSearch(options) {
492
- const { searchees, infoHashesToExclude } = await findSearchableTorrents(options);
500
+ const searchOptions = options?.configOverride
501
+ ? { configOverride: options.configOverride }
502
+ : undefined;
503
+ const { searchees, infoHashesToExclude } = await findSearchableTorrents(searchOptions);
493
504
  const totalFound = await findMatchesBatch(searchees, infoHashesToExclude, options);
494
505
  logger.info({
495
506
  label: Label.SEARCH,
496
507
  message: chalk.cyan(`Found ${chalk.bold.white(totalFound)} cross seeds from ${chalk.bold.white(searchees.length)} original torrents`),
497
508
  });
498
509
  }
510
+ export async function bulkSearchByNames(names, options) {
511
+ const normalizedNames = Array.from(new Set(names
512
+ .map((name) => name.trim())
513
+ .filter((name) => name.length > 0 && name.length <= 500)));
514
+ if (!normalizedNames.length) {
515
+ return { attempted: 0, totalFound: 0, requested: 0 };
516
+ }
517
+ const nameSet = new Set(normalizedNames);
518
+ const searchOptions = options?.configOverride
519
+ ? { configOverride: options.configOverride }
520
+ : undefined;
521
+ const { searchees, infoHashesToExclude } = await findSearchableTorrents(searchOptions);
522
+ const selectedSearchees = searchees.filter((searchee) => {
523
+ const titleOrName = searchee.title ?? searchee.name;
524
+ return titleOrName ? nameSet.has(titleOrName) : false;
525
+ });
526
+ if (!selectedSearchees.length) {
527
+ logger.warn({
528
+ label: Label.SEARCH,
529
+ message: `Manual bulk search requested for ${normalizedNames.length} items, but none were eligible after filtering`,
530
+ });
531
+ return {
532
+ attempted: 0,
533
+ totalFound: 0,
534
+ requested: normalizedNames.length,
535
+ };
536
+ }
537
+ logger.info({
538
+ label: Label.SEARCH,
539
+ message: `Starting manual bulk search for ${selectedSearchees.length}/${normalizedNames.length} selected items`,
540
+ });
541
+ const totalFound = await findMatchesBatch(selectedSearchees, infoHashesToExclude, searchOptions);
542
+ return {
543
+ attempted: selectedSearchees.length,
544
+ totalFound,
545
+ requested: normalizedNames.length,
546
+ };
547
+ }
499
548
  export async function scanRssFeeds() {
500
- const { dataDirs, torrentDir, torznab, useClientTorrents } = getRuntimeConfig();
501
- if (!torznab.length ||
549
+ const { dataDirs, torrentDir, useClientTorrents } = getRuntimeConfig();
550
+ await indexTorrentsAndDataDirs();
551
+ const enabledIndexers = await getEnabledIndexers();
552
+ if (!enabledIndexers.length ||
502
553
  (!useClientTorrents && !torrentDir && !dataDirs.length)) {
503
- logger.error({
554
+ logger.warn({
504
555
  label: Label.RSS,
505
- message: "RSS requires torznab and at least one of useClientTorrents, torrentDir, or dataDirs to be set",
556
+ message: "RSS requires enabled indexers and at least one of useClientTorrents, torrentDir, or dataDirs to be set",
506
557
  });
507
558
  return;
508
559
  }
@@ -513,7 +564,7 @@ export async function scanRssFeeds() {
513
564
  const lastRun = (await getJobLastRun(JobName.RSS)) ?? 0;
514
565
  await indexTorrentsAndDataDirs();
515
566
  let numCandidates = 0;
516
- await mapAsync(await queryRssFeeds(lastRun), async (candidates) => {
567
+ await mapAsync(await queryRssFeeds(lastRun, enabledIndexers), async (candidates) => {
517
568
  for await (const candidate of candidates) {
518
569
  await checkNewCandidateMatch(candidate, Label.RSS);
519
570
  numCandidates++;