cross-seed 5.9.2 → 6.0.0-1

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 (63) hide show
  1. package/README.md +7 -1
  2. package/dist/Result.js +2 -0
  3. package/dist/Result.js.map +1 -1
  4. package/dist/action.js +127 -62
  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 +104 -51
  9. package/dist/clients/Deluge.js.map +1 -1
  10. package/dist/clients/QBittorrent.js +205 -122
  11. package/dist/clients/QBittorrent.js.map +1 -1
  12. package/dist/clients/RTorrent.js +57 -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 +17 -9
  16. package/dist/clients/Transmission.js.map +1 -1
  17. package/dist/cmd.js +89 -77
  18. package/dist/cmd.js.map +1 -1
  19. package/dist/config.template.cjs +237 -144
  20. package/dist/config.template.cjs.map +1 -1
  21. package/dist/configSchema.js +177 -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 +28 -12
  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 +118 -28
  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/searchee.js +8 -1
  51. package/dist/searchee.js.map +1 -1
  52. package/dist/server.js.map +1 -1
  53. package/dist/startup.js +62 -23
  54. package/dist/startup.js.map +1 -1
  55. package/dist/torrent.js +14 -29
  56. package/dist/torrent.js.map +1 -1
  57. package/dist/torznab.js +56 -32
  58. package/dist/torznab.js.map +1 -1
  59. package/dist/utils.js +42 -5
  60. package/dist/utils.js.map +1 -1
  61. package/package.json +12 -12
  62. package/dist/config.template.docker.cjs +0 -236
  63. package/dist/config.template.docker.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Deluge.js","sourceRoot":"","sources":["../../src/clients/Deluge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Deluge.js","sourceRoot":"","sources":["../../src/clients/Deluge.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,16 @@
1
- import { fileFrom } from "fetch-blob/from.js";
2
- import { FormData } from "formdata-polyfill/esm.min.js";
3
- import { unlink, writeFile } from "fs/promises";
4
- import fetch from "node-fetch";
5
- import { join, posix } from "path";
6
- import { appDir } from "../configuration.js";
7
- import { InjectionResult, TORRENT_CACHE_FOLDER } from "../constants.js";
1
+ import { dirname } from "path";
2
+ import { InjectionResult, TORRENT_TAG, TORRENT_CATEGORY_SUFFIX, } from "../constants.js";
8
3
  import { CrossSeedError } from "../errors.js";
9
- import { Label, logger, logOnce } from "../logger.js";
4
+ import { Label, logger } from "../logger.js";
10
5
  import { getRuntimeConfig } from "../runtimeConfig.js";
11
- import { extractCredentialsFromUrl } from "../utils.js";
6
+ import { shouldRecheck, extractCredentialsFromUrl, wait } from "../utils.js";
7
+ import { resultOf, resultOfErr } from "../Result.js";
12
8
  const X_WWW_FORM_URLENCODED = {
13
9
  "Content-Type": "application/x-www-form-urlencoded",
14
10
  };
15
11
  export default class QBittorrent {
12
+ cookie;
13
+ url;
16
14
  constructor() {
17
15
  const { qbittorrentUrl } = getRuntimeConfig();
18
16
  this.url = extractCredentialsFromUrl(qbittorrentUrl, "/api/v2").unwrapOrThrow(new CrossSeedError("qBittorrent url must be percent-encoded"));
@@ -32,11 +30,8 @@ export default class QBittorrent {
32
30
  if (response.status !== 200) {
33
31
  throw new CrossSeedError(`qBittorrent login failed with code ${response.status}`);
34
32
  }
35
- const cookieArray = response.headers.raw()["set-cookie"];
36
- if (cookieArray) {
37
- this.cookie = cookieArray[0].split(";")[0];
38
- }
39
- else {
33
+ this.cookie = response.headers.getSetCookie()[0];
34
+ if (!this.cookie) {
40
35
  throw new CrossSeedError(`qBittorrent login failed: Invalid username or password`);
41
36
  }
42
37
  }
@@ -44,157 +39,245 @@ export default class QBittorrent {
44
39
  await this.login();
45
40
  await this.createTag();
46
41
  }
47
- async request(path, body, headers = {}, retries = 1) {
42
+ async request(path, body, headers = {}, retries = 3) {
48
43
  logger.verbose({
49
44
  label: Label.QBITTORRENT,
50
- message: `Making request to ${path} with body ${body.toString()}`,
45
+ message: `Making request (${retries}) to ${path} with body ${JSON.stringify(body)}`,
51
46
  });
52
- const response = await fetch(`${this.url.href}${path}`, {
53
- method: "post",
54
- headers: { Cookie: this.cookie, ...headers },
55
- body,
56
- });
57
- if (response.status === 403 && retries > 0) {
47
+ let response;
48
+ try {
49
+ response = await fetch(`${this.url.href}${path}`, {
50
+ method: "post",
51
+ headers: { Cookie: this.cookie, ...headers },
52
+ body,
53
+ });
54
+ if (response.status === 403 && retries > 0) {
55
+ logger.verbose({
56
+ label: Label.QBITTORRENT,
57
+ message: "Received 403 from API. Logging in again and retrying",
58
+ });
59
+ await this.login();
60
+ return this.request(path, body, headers, retries - 1);
61
+ }
62
+ }
63
+ catch (e) {
64
+ if (retries > 0) {
65
+ logger.verbose({
66
+ label: Label.QBITTORRENT,
67
+ message: `Request failed, ${retries} retries remaining: ${e.message}`,
68
+ });
69
+ return this.request(path, body, headers, retries - 1);
70
+ }
58
71
  logger.verbose({
59
72
  label: Label.QBITTORRENT,
60
- message: "received 403 from API. Logging in again and retrying",
61
- });
62
- await this.login();
63
- return this.request(path, body, headers, retries - 1);
64
- }
65
- return response.text();
66
- }
67
- async setUpCrossSeedCategory(ogCategoryName) {
68
- if (!ogCategoryName)
69
- return "";
70
- if (ogCategoryName.endsWith(".cross-seed"))
71
- return ogCategoryName;
72
- const categoriesStr = await this.request("/torrents/categories", "");
73
- const categories = JSON.parse(categoriesStr);
74
- const ogCategory = categories[ogCategoryName];
75
- const newCategoryName = `${ogCategoryName}.cross-seed`;
76
- const maybeNewCategory = categories[newCategoryName];
77
- if (!ogCategory.savePath) {
78
- logOnce(`qbit/cat/no-save-path/${ogCategoryName}`, () => {
79
- logger.warn(`qBittorrent category "${ogCategoryName}" has no save path. Set a save path to prevent Missing Files errors.`);
73
+ message: `Request failed after ${retries} retries: ${e.message}`,
80
74
  });
81
75
  }
82
- if (maybeNewCategory?.savePath === ogCategory.savePath) {
83
- // setup is already complete
76
+ return response?.text();
77
+ }
78
+ getLayoutForNewTorrent(searchee, searcheeInfo, path) {
79
+ return path
80
+ ? "Original"
81
+ : this.isSubfolderContentLayout(searchee, searcheeInfo)
82
+ ? "Subfolder"
83
+ : "Original";
84
+ }
85
+ getTagsForNewTorrent(searchee, searcheeInfo, category) {
86
+ const { duplicateCategories } = getRuntimeConfig();
87
+ /* get the original category if torrent based - cuz otherwise we
88
+ * use 'category'. this addresses path being truthy but still being
89
+ * torrent searchee
90
+ */
91
+ const categoryForTagging = searcheeInfo
92
+ ? searcheeInfo.category
93
+ : category;
94
+ if (!categoryForTagging || categoryForTagging.length === 0) {
95
+ return TORRENT_TAG;
84
96
  }
85
- else if (maybeNewCategory) {
86
- await this.request("/torrents/editCategory", `category=${newCategoryName}&savePath=${ogCategory.savePath}`, X_WWW_FORM_URLENCODED);
97
+ if (category.endsWith(TORRENT_CATEGORY_SUFFIX)) {
98
+ if (duplicateCategories) {
99
+ return `${TORRENT_TAG},${categoryForTagging}`;
100
+ }
101
+ else {
102
+ return TORRENT_TAG;
103
+ }
104
+ }
105
+ if (searchee.path) {
106
+ return TORRENT_TAG;
107
+ }
108
+ else if (duplicateCategories) {
109
+ return `${TORRENT_TAG},${categoryForTagging}${TORRENT_CATEGORY_SUFFIX}`;
87
110
  }
88
111
  else {
89
- await this.request("/torrents/createCategory", `category=${newCategoryName}&savePath=${ogCategory.savePath}`, X_WWW_FORM_URLENCODED);
112
+ return TORRENT_TAG;
90
113
  }
91
- return newCategoryName;
92
114
  }
93
115
  async createTag() {
94
- await this.request("/torrents/createTags", "tags=cross-seed", X_WWW_FORM_URLENCODED);
116
+ await this.request("/torrents/createTags", `tags=${TORRENT_TAG}`, X_WWW_FORM_URLENCODED);
117
+ }
118
+ async addTorrent(formData) {
119
+ await this.request("/torrents/add", formData);
95
120
  }
96
- async isInfoHashInClient(infoHash) {
97
- const responseText = await this.request("/torrents/properties", `hash=${infoHash}`, X_WWW_FORM_URLENCODED);
121
+ async recheckTorrent(torrentInfo) {
122
+ await this.request("/torrents/recheck", `hashes=${torrentInfo.hash}`, X_WWW_FORM_URLENCODED);
123
+ }
124
+ /*
125
+ @param searchee the Searchee we are generating off (in client)
126
+ @return either a string containing the path or a error mesage
127
+ */
128
+ async getDownloadDir(searchee) {
98
129
  try {
99
- const properties = JSON.parse(responseText);
100
- return properties && typeof properties === "object";
130
+ const torrentInfo = await this.getTorrentInfo(searchee.infoHash);
131
+ if (!torrentInfo) {
132
+ return resultOfErr("NOT_FOUND");
133
+ }
134
+ if (!this.isTorrentComplete(torrentInfo)) {
135
+ return resultOfErr("TORRENT_NOT_COMPLETE");
136
+ }
137
+ const savePath = this.getCorrectSavePath(searchee, torrentInfo);
138
+ return resultOf(savePath);
101
139
  }
102
140
  catch (e) {
103
- return false;
141
+ if (e.message.includes("retrieve")) {
142
+ return resultOfErr("NOT_FOUND");
143
+ }
144
+ return resultOfErr("UNKNOWN_ERROR");
104
145
  }
105
146
  }
106
- async getTorrentConfiguration(searchee) {
107
- const responseText = await this.request("/torrents/info", `hashes=${searchee.infoHash}`, X_WWW_FORM_URLENCODED);
108
- const searchResult = JSON.parse(responseText).find((e) => e.hash === searchee.infoHash);
109
- if (searchResult === undefined) {
110
- throw new Error("Failed to retrieve data dir; torrent not found in client");
111
- }
112
- const { progress, save_path, auto_tmm, category } = searchResult;
113
- return {
114
- save_path,
115
- isComplete: progress === 1,
116
- autoTMM: auto_tmm,
117
- category,
118
- };
119
- }
120
- async isSubfolderContentLayout(searchee) {
121
- const response = await this.request("/torrents/files", `hash=${searchee.infoHash}`, X_WWW_FORM_URLENCODED);
122
- const files = JSON.parse(response);
123
- const [{ name }] = files;
124
- return files.length === 1 && name !== posix.basename(name);
125
- }
126
- async inject(newTorrent, searchee, path) {
127
- const { duplicateCategories, skipRecheck, dataCategory } = getRuntimeConfig();
128
- const filename = `${newTorrent.getFileSystemSafeName()}.cross-seed.torrent`;
129
- const tempFilepath = join(appDir(), TORRENT_CACHE_FOLDER, filename);
147
+ /*
148
+ @param searchee the Searchee we are generating off (in client)
149
+ @param torrentInfo the torrent info from the searchee
150
+ @return string absolute location from client with content layout considered
151
+ */
152
+ getCorrectSavePath(searchee, torrentInfo) {
153
+ const subfolderContentLayout = this.isSubfolderContentLayout(searchee, torrentInfo);
154
+ if (subfolderContentLayout) {
155
+ return dirname(torrentInfo.content_path);
156
+ }
157
+ return torrentInfo.save_path;
158
+ }
159
+ /*
160
+ @return array of query results
161
+ */
162
+ async getAllTorrentInfo() {
163
+ const responseText = await this.request("/torrents/info", "");
164
+ if (!responseText) {
165
+ return [];
166
+ }
167
+ return JSON.parse(responseText);
168
+ }
169
+ /*
170
+ @param hash the hash of the torrent or undefined for all torrents
171
+ @return array of query results
172
+ */
173
+ async getTorrentInfo(hash) {
174
+ if (!hash)
175
+ return undefined;
176
+ const responseText = await this.request("/torrents/info", `hashes=${hash}`, X_WWW_FORM_URLENCODED);
177
+ if (responseText) {
178
+ const torrents = JSON.parse(responseText);
179
+ if (torrents.length > 0) {
180
+ return torrents[0];
181
+ }
182
+ }
183
+ logger.verbose({
184
+ label: Label.QBITTORRENT,
185
+ message: `Failed to retrieve torrent info using infohash_v1 ${hash}, checking all hashes`,
186
+ });
187
+ const torrents = await this.getAllTorrentInfo();
188
+ return torrents.find((torrent) => hash === torrent.hash ||
189
+ hash === torrent.infohash_v1 ||
190
+ hash === torrent.infohash_v2);
191
+ }
192
+ isTorrentComplete(torrentInfo) {
193
+ return [
194
+ "uploading",
195
+ "pausedUP",
196
+ "stoppedUP",
197
+ "queuedUP",
198
+ "stalledUP",
199
+ "checkingUP",
200
+ "forcedUP",
201
+ ].includes(torrentInfo.state);
202
+ }
203
+ isSubfolderContentLayout(searchee, searcheeInfo) {
204
+ if (searchee.files.length > 1)
205
+ return false;
206
+ if (dirname(searchee.files[0].path) !== ".")
207
+ return false;
208
+ return dirname(searcheeInfo.content_path) !== searcheeInfo.save_path;
209
+ }
210
+ async inject(newTorrent, searchee, decision, path) {
211
+ const { flatLinking, linkCategory } = getRuntimeConfig();
130
212
  try {
131
- if (await this.isInfoHashInClient(newTorrent.infoHash)) {
213
+ if (await this.getTorrentInfo(newTorrent.infoHash)) {
132
214
  return InjectionResult.ALREADY_EXISTS;
133
215
  }
134
- const buf = newTorrent.encode();
135
- await writeFile(tempFilepath, buf, { mode: 0o600 });
136
- const { save_path, isComplete, autoTMM, category } = path
216
+ const searcheeInfo = await this.getTorrentInfo(searchee.infoHash);
217
+ // This should be extremly rare as we just linked successfully
218
+ if (searchee.infoHash && !searcheeInfo && path) {
219
+ logger.warning({
220
+ label: Label.QBITTORRENT,
221
+ message: `Searchee torrent may have been deleted, tagging may not meet expectations: ${searchee.infoHash}`,
222
+ });
223
+ }
224
+ // This is never possible, being made explicit here
225
+ if (!searcheeInfo && !path) {
226
+ throw new Error(`Searchee torrent may have been deleted: ${searchee.infoHash}`);
227
+ }
228
+ const { savePath, isComplete, autoTMM, category } = path
137
229
  ? {
138
- save_path: path,
230
+ savePath: path,
139
231
  isComplete: true,
140
232
  autoTMM: false,
141
- category: dataCategory,
233
+ category: linkCategory,
142
234
  }
143
- : await this.getTorrentConfiguration(searchee);
144
- const newCategoryName = duplicateCategories && searchee.infoHash
145
- ? await this.setUpCrossSeedCategory(category)
146
- : category;
235
+ : {
236
+ savePath: searcheeInfo.save_path,
237
+ isComplete: this.isTorrentComplete(searcheeInfo),
238
+ autoTMM: searcheeInfo.auto_tmm,
239
+ category: searcheeInfo.category,
240
+ };
147
241
  if (!isComplete)
148
242
  return InjectionResult.TORRENT_NOT_COMPLETE;
149
- const contentLayout = !path &&
150
- newTorrent.isSingleFileTorrent &&
151
- (await this.isSubfolderContentLayout(searchee))
152
- ? "Subfolder"
153
- : "Original";
154
- const file = await fileFrom(tempFilepath, "application/x-bittorrent");
243
+ const filename = `${newTorrent.getFileSystemSafeName()}.${TORRENT_TAG}.torrent`;
244
+ const buffer = new Blob([newTorrent.encode()], {
245
+ type: "application/x-bittorrent",
246
+ });
247
+ const toRecheck = shouldRecheck(decision);
248
+ // ---------------------- Building form data ----------------------
155
249
  const formData = new FormData();
156
- formData.append("torrents", file, filename);
157
- formData.append("tags", "cross-seed");
158
- formData.append("category", newCategoryName);
159
- if (autoTMM) {
160
- formData.append("autoTMM", "true");
161
- }
162
- else {
163
- formData.append("autoTMM", "false");
164
- formData.append("savepath", save_path);
165
- }
250
+ formData.append("torrents", buffer, filename);
166
251
  if (path) {
167
- formData.append("contentLayout", "Original");
168
- formData.append("skip_checking", skipRecheck.toString());
169
- formData.append("paused", (!skipRecheck).toString());
170
- }
171
- else {
172
- formData.append("contentLayout", contentLayout);
173
- formData.append("skip_checking", "true");
174
- formData.append("paused", "false");
252
+ formData.append("savepath", savePath);
175
253
  }
254
+ formData.append("autoTMM", flatLinking && searchee.infoHash ? autoTMM.toString() : "false");
255
+ formData.append("category", category);
256
+ formData.append("tags", this.getTagsForNewTorrent(searchee, searcheeInfo, category));
257
+ formData.append("contentLayout", this.getLayoutForNewTorrent(searchee, searcheeInfo, path));
258
+ formData.append("skip_checking", !toRecheck.toString());
259
+ formData.append("paused", toRecheck.toString());
176
260
  // for some reason the parser parses the last kv pair incorrectly
177
261
  // it concats the value and the sentinel
178
262
  formData.append("foo", "bar");
179
- await this.request("/torrents/add", formData);
180
- if (path && !skipRecheck) {
181
- await new Promise((resolve) => setTimeout(resolve, 100));
182
- await this.request("/torrents/recheck", `hashes=${newTorrent.infoHash}`, X_WWW_FORM_URLENCODED);
263
+ await this.addTorrent(formData);
264
+ await wait(1000);
265
+ const newInfo = await this.getTorrentInfo(newTorrent.infoHash);
266
+ if (!newInfo) {
267
+ throw new Error(`Failed to retrieve torrent after adding`);
268
+ }
269
+ if (toRecheck) {
270
+ await this.recheckTorrent(newInfo);
183
271
  }
184
272
  return InjectionResult.SUCCESS;
185
273
  }
186
274
  catch (e) {
187
275
  logger.debug({
188
276
  label: Label.QBITTORRENT,
189
- message: `injection failed: ${e.message}`,
277
+ message: `Injection failed: ${e.message}`,
190
278
  });
191
279
  return InjectionResult.FAILURE;
192
280
  }
193
- finally {
194
- await unlink(tempFilepath).catch((error) => {
195
- logger.debug(error);
196
- });
197
- }
198
281
  }
199
282
  }
200
283
  //# sourceMappingURL=QBittorrent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QBittorrent.js","sourceRoot":"","sources":["../../src/clients/QBittorrent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QBittorrent.js","sourceRoot":"","sources":["../../src/clients/QBittorrent.ts"],"names":[],"mappings":"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"}