cross-seed 6.0.0-9 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action.js +177 -68
- package/dist/action.js.map +1 -1
- package/dist/arr.js +62 -54
- package/dist/arr.js.map +1 -1
- package/dist/clients/Deluge.js +70 -46
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +110 -68
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +45 -22
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +14 -1
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +29 -9
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +46 -23
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +53 -57
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +89 -25
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js +4 -1
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +69 -10
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +4 -5
- package/dist/dataFiles.js.map +1 -1
- package/dist/db.js +2 -1
- package/dist/db.js.map +1 -1
- package/dist/decide.js +231 -146
- package/dist/decide.js.map +1 -1
- package/dist/diff.js +13 -3
- package/dist/diff.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/indexers.js +94 -33
- package/dist/indexers.js.map +1 -1
- package/dist/inject.js +448 -0
- package/dist/inject.js.map +1 -0
- package/dist/jobs.js +13 -6
- package/dist/jobs.js.map +1 -1
- package/dist/logger.js +27 -9
- package/dist/logger.js.map +1 -1
- package/dist/migrations/00-initialSchema.js.map +1 -1
- package/dist/migrations/05-caps.js.map +1 -1
- package/dist/migrations/06-uniqueDecisions.js +29 -0
- package/dist/migrations/06-uniqueDecisions.js.map +1 -0
- package/dist/migrations/07-limits.js +12 -0
- package/dist/migrations/07-limits.js.map +1 -0
- package/dist/migrations/migrations.js +4 -0
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/parseTorrent.js +6 -0
- package/dist/parseTorrent.js.map +1 -1
- package/dist/pipeline.js +224 -108
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +122 -55
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +7 -5
- package/dist/pushNotifier.js.map +1 -1
- package/dist/searchee.js +198 -17
- package/dist/searchee.js.map +1 -1
- package/dist/server.js +106 -54
- package/dist/server.js.map +1 -1
- package/dist/startup.js +16 -7
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +100 -37
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +323 -153
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +228 -43
- package/dist/utils.js.map +1 -1
- package/package.json +11 -6
package/dist/action.js
CHANGED
@@ -1,66 +1,93 @@
|
|
1
1
|
import chalk from "chalk";
|
2
|
-
import { existsSync, linkSync, mkdirSync, statSync, symlinkSync } from "fs";
|
2
|
+
import { existsSync, linkSync, lstatSync, mkdirSync, readlinkSync, rmSync, statSync, symlinkSync, } from "fs";
|
3
3
|
import { dirname, join, resolve } from "path";
|
4
4
|
import { getClient } from "./clients/TorrentClient.js";
|
5
5
|
import { Action, Decision, InjectionResult, LinkType, SaveResult, } from "./constants.js";
|
6
|
-
import { logger } from "./logger.js";
|
6
|
+
import { Label, logger } from "./logger.js";
|
7
7
|
import { resultOf, resultOfErr } from "./Result.js";
|
8
8
|
import { getRuntimeConfig } from "./runtimeConfig.js";
|
9
|
+
import { createSearcheeFromPath, getSearcheeSource, } from "./searchee.js";
|
9
10
|
import { saveTorrentFile } from "./torrent.js";
|
10
|
-
import { getMediaType } from "./utils.js";
|
11
|
-
function
|
12
|
-
const
|
13
|
-
const
|
14
|
-
const
|
11
|
+
import { getLogString, getMediaType } from "./utils.js";
|
12
|
+
function logActionResult(result, newMeta, searchee, tracker, decision) {
|
13
|
+
const metaLog = getLogString(newMeta, chalk.green.bold);
|
14
|
+
const searcheeLog = getLogString(searchee, chalk.magenta.bold);
|
15
|
+
const source = `${getSearcheeSource(searchee)} (${searcheeLog})`;
|
16
|
+
const foundBy = `Found ${metaLog} on ${chalk.bold(tracker)} by`;
|
17
|
+
let infoOrVerbose = logger.info;
|
18
|
+
let warnOrVerbose = logger.warn;
|
19
|
+
if (searchee.label === Label.INJECT) {
|
20
|
+
infoOrVerbose = logger.verbose;
|
21
|
+
warnOrVerbose = logger.verbose;
|
22
|
+
}
|
15
23
|
switch (result) {
|
24
|
+
case SaveResult.SAVED:
|
25
|
+
infoOrVerbose({
|
26
|
+
label: searchee.label,
|
27
|
+
message: `${foundBy} ${chalk.green.bold(decision)} from ${source} - saved`,
|
28
|
+
});
|
29
|
+
break;
|
16
30
|
case InjectionResult.SUCCESS:
|
17
|
-
|
31
|
+
infoOrVerbose({
|
32
|
+
label: searchee.label,
|
33
|
+
message: `${foundBy} ${chalk.green.bold(decision)} from ${source} - injected`,
|
34
|
+
});
|
18
35
|
break;
|
19
36
|
case InjectionResult.ALREADY_EXISTS:
|
20
|
-
|
37
|
+
infoOrVerbose({
|
38
|
+
label: searchee.label,
|
39
|
+
message: `${foundBy} ${chalk.yellow(decision)} from ${source} - exists`,
|
40
|
+
});
|
21
41
|
break;
|
22
42
|
case InjectionResult.TORRENT_NOT_COMPLETE:
|
23
|
-
|
43
|
+
warnOrVerbose({
|
44
|
+
label: searchee.label,
|
45
|
+
message: `${foundBy} ${chalk.yellow(decision)} from ${source} - incomplete torrent, saving...`,
|
46
|
+
});
|
24
47
|
break;
|
25
48
|
case InjectionResult.FAILURE:
|
26
49
|
default:
|
27
|
-
logger.error(
|
50
|
+
logger.error({
|
51
|
+
label: searchee.label,
|
52
|
+
message: `${foundBy} ${chalk.red(decision)} from ${source} - failed to inject, saving...`,
|
53
|
+
});
|
28
54
|
break;
|
29
55
|
}
|
30
56
|
}
|
31
57
|
/**
|
32
58
|
* @return the root of linked files.
|
33
59
|
*/
|
34
|
-
function linkExactTree(
|
35
|
-
|
36
|
-
|
37
|
-
}
|
60
|
+
function linkExactTree(newMeta, destinationDir, sourceRoot, options) {
|
61
|
+
let alreadyExisted = false;
|
62
|
+
let linkedNewFiles = false;
|
38
63
|
for (const newFile of newMeta.files) {
|
39
|
-
const srcFilePath =
|
64
|
+
const srcFilePath = statSync(sourceRoot).isFile()
|
65
|
+
? sourceRoot
|
66
|
+
: join(dirname(sourceRoot), newFile.path);
|
40
67
|
const destFilePath = join(destinationDir, newFile.path);
|
68
|
+
if (existsSync(destFilePath)) {
|
69
|
+
alreadyExisted = true;
|
70
|
+
continue;
|
71
|
+
}
|
72
|
+
if (options.ignoreMissing && !existsSync(srcFilePath))
|
73
|
+
continue;
|
41
74
|
mkdirSync(dirname(destFilePath), { recursive: true });
|
42
|
-
linkFile(srcFilePath, destFilePath)
|
75
|
+
if (linkFile(srcFilePath, destFilePath)) {
|
76
|
+
linkedNewFiles = true;
|
77
|
+
}
|
43
78
|
}
|
44
|
-
|
45
|
-
}
|
46
|
-
/**
|
47
|
-
* @return the root of linked file.
|
48
|
-
*/
|
49
|
-
function fuzzyLinkOneFile(searchee, newMeta, destinationDir, sourceRoot) {
|
50
|
-
const srcFilePath = statSync(sourceRoot).isFile()
|
51
|
-
? sourceRoot
|
52
|
-
: join(dirname(sourceRoot), searchee.files[0].path);
|
53
|
-
const destFilePath = join(destinationDir, newMeta.files[0].path);
|
54
|
-
mkdirSync(dirname(destFilePath), { recursive: true });
|
55
|
-
linkFile(srcFilePath, destFilePath);
|
56
|
-
return join(destinationDir, newMeta.name);
|
79
|
+
const contentPath = join(destinationDir, newMeta.name);
|
80
|
+
return { contentPath, alreadyExisted, linkedNewFiles };
|
57
81
|
}
|
58
82
|
/**
|
59
83
|
* @return the root of linked files.
|
60
84
|
*/
|
61
|
-
function linkFuzzyTree(searchee, newMeta, destinationDir, sourceRoot) {
|
85
|
+
function linkFuzzyTree(searchee, newMeta, destinationDir, sourceRoot, options) {
|
86
|
+
let alreadyExisted = false;
|
87
|
+
let linkedNewFiles = false;
|
88
|
+
const availableFiles = searchee.files.slice();
|
62
89
|
for (const newFile of newMeta.files) {
|
63
|
-
let matchedSearcheeFiles =
|
90
|
+
let matchedSearcheeFiles = availableFiles.filter((searcheeFile) => searcheeFile.length === newFile.length);
|
64
91
|
if (matchedSearcheeFiles.length > 1) {
|
65
92
|
matchedSearcheeFiles = matchedSearcheeFiles.filter((searcheeFile) => searcheeFile.name === newFile.name);
|
66
93
|
}
|
@@ -69,21 +96,71 @@ function linkFuzzyTree(searchee, newMeta, destinationDir, sourceRoot) {
|
|
69
96
|
? sourceRoot
|
70
97
|
: join(dirname(sourceRoot), matchedSearcheeFiles[0].path);
|
71
98
|
const destFilePath = join(destinationDir, newFile.path);
|
99
|
+
const index = availableFiles.indexOf(matchedSearcheeFiles[0]);
|
100
|
+
availableFiles.splice(index, 1);
|
101
|
+
if (existsSync(destFilePath)) {
|
102
|
+
alreadyExisted = true;
|
103
|
+
continue;
|
104
|
+
}
|
105
|
+
if (options.ignoreMissing && !existsSync(srcFilePath))
|
106
|
+
continue;
|
72
107
|
mkdirSync(dirname(destFilePath), { recursive: true });
|
73
|
-
linkFile(srcFilePath, destFilePath)
|
108
|
+
if (linkFile(srcFilePath, destFilePath)) {
|
109
|
+
linkedNewFiles = true;
|
110
|
+
}
|
74
111
|
}
|
75
112
|
}
|
76
|
-
|
113
|
+
const contentPath = join(destinationDir, newMeta.name);
|
114
|
+
return { contentPath, alreadyExisted, linkedNewFiles };
|
77
115
|
}
|
78
|
-
|
116
|
+
function unlinkMetafile(meta, destinationDir) {
|
117
|
+
const file = meta.files[0];
|
118
|
+
let rootFolder = file.path;
|
119
|
+
let parent = dirname(rootFolder);
|
120
|
+
while (parent !== ".") {
|
121
|
+
rootFolder = parent;
|
122
|
+
parent = dirname(rootFolder);
|
123
|
+
}
|
124
|
+
const fullPath = join(destinationDir, rootFolder);
|
125
|
+
if (!existsSync(fullPath))
|
126
|
+
return;
|
127
|
+
if (resolve(fullPath) === resolve(destinationDir))
|
128
|
+
return;
|
129
|
+
logger.verbose(`Unlinking ${fullPath}`);
|
130
|
+
rmSync(fullPath, { recursive: true });
|
131
|
+
}
|
132
|
+
export async function linkAllFilesInMetafile(searchee, newMeta, tracker, decision, options) {
|
79
133
|
const { linkDir, flatLinking } = getRuntimeConfig();
|
80
|
-
const
|
134
|
+
const newMetaClientSavePathRes = await getClient().getDownloadDir(newMeta, {
|
135
|
+
onlyCompleted: false,
|
136
|
+
});
|
137
|
+
const fullLinkDir = newMetaClientSavePathRes.isOk()
|
138
|
+
? newMetaClientSavePathRes.unwrap() // Use existing if ALREADY_EXISTS
|
139
|
+
: flatLinking
|
140
|
+
? linkDir
|
141
|
+
: join(linkDir, tracker);
|
81
142
|
let sourceRoot;
|
82
143
|
if (searchee.path) {
|
144
|
+
if (!existsSync(searchee.path)) {
|
145
|
+
logger.error({
|
146
|
+
label: searchee.label,
|
147
|
+
message: `Linking failed, ${searchee.path} not found. Make sure Docker volume mounts are set up properly.`,
|
148
|
+
});
|
149
|
+
return resultOfErr("MISSING_DATA");
|
150
|
+
}
|
151
|
+
const result = await createSearcheeFromPath(searchee.path);
|
152
|
+
if (result.isErr()) {
|
153
|
+
return resultOfErr("TORRENT_NOT_FOUND");
|
154
|
+
}
|
155
|
+
const refreshedSearchee = result.unwrap();
|
156
|
+
if (options.onlyCompleted &&
|
157
|
+
searchee.length !== refreshedSearchee.length) {
|
158
|
+
return resultOfErr("TORRENT_NOT_COMPLETE");
|
159
|
+
}
|
83
160
|
sourceRoot = searchee.path;
|
84
161
|
}
|
85
162
|
else {
|
86
|
-
const downloadDirResult = await getClient().getDownloadDir(searchee);
|
163
|
+
const downloadDirResult = await getClient().getDownloadDir(searchee, { onlyCompleted: options.onlyCompleted });
|
87
164
|
if (downloadDirResult.isErr()) {
|
88
165
|
return downloadDirResult.mapErr((e) => e === "NOT_FOUND" || e === "UNKNOWN_ERROR"
|
89
166
|
? "TORRENT_NOT_FOUND"
|
@@ -92,49 +169,56 @@ async function linkAllFilesInMetafile(searchee, newMeta, tracker, decision) {
|
|
92
169
|
sourceRoot = join(downloadDirResult.unwrap(), searchee.files.length === 1
|
93
170
|
? searchee.files[0].path
|
94
171
|
: searchee.name);
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
172
|
+
if (!existsSync(sourceRoot)) {
|
173
|
+
logger.error({
|
174
|
+
label: searchee.label,
|
175
|
+
message: `Linking failed, ${sourceRoot} not found. Make sure Docker volume mounts are set up properly.`,
|
176
|
+
});
|
177
|
+
return resultOfErr("MISSING_DATA");
|
178
|
+
}
|
99
179
|
}
|
100
180
|
if (decision === Decision.MATCH) {
|
101
|
-
return resultOf(linkExactTree(
|
181
|
+
return resultOf(linkExactTree(newMeta, fullLinkDir, sourceRoot, {
|
182
|
+
ignoreMissing: !options.onlyCompleted,
|
183
|
+
}));
|
102
184
|
}
|
103
185
|
else {
|
104
|
-
return resultOf(linkFuzzyTree(searchee, newMeta, fullLinkDir, sourceRoot
|
186
|
+
return resultOf(linkFuzzyTree(searchee, newMeta, fullLinkDir, sourceRoot, {
|
187
|
+
ignoreMissing: !options.onlyCompleted,
|
188
|
+
}));
|
105
189
|
}
|
106
190
|
}
|
107
191
|
export async function performAction(newMeta, decision, searchee, tracker) {
|
108
192
|
const { action, linkDir } = getRuntimeConfig();
|
109
193
|
if (action === Action.SAVE) {
|
110
194
|
await saveTorrentFile(tracker, getMediaType(searchee), newMeta);
|
111
|
-
|
112
|
-
|
113
|
-
logger.info(`Found ${styledName} on ${styledTracker} by ${decision} - saved`);
|
114
|
-
return SaveResult.SAVED;
|
195
|
+
logActionResult(SaveResult.SAVED, newMeta, searchee, tracker, decision);
|
196
|
+
return { actionResult: SaveResult.SAVED, linkedNewFiles: false };
|
115
197
|
}
|
116
198
|
let destinationDir;
|
199
|
+
let unlinkOk = false;
|
200
|
+
let linkedNewFiles = false;
|
117
201
|
if (linkDir) {
|
118
|
-
const linkedFilesRootResult = await linkAllFilesInMetafile(searchee, newMeta, tracker, decision);
|
202
|
+
const linkedFilesRootResult = await linkAllFilesInMetafile(searchee, newMeta, tracker, decision, { onlyCompleted: true });
|
119
203
|
if (linkedFilesRootResult.isOk()) {
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
logger.warn("Falling back to non-linking.");
|
125
|
-
if (searchee.path) {
|
126
|
-
destinationDir = dirname(searchee.path);
|
127
|
-
}
|
204
|
+
const linkResult = linkedFilesRootResult.unwrap();
|
205
|
+
destinationDir = dirname(linkResult.contentPath);
|
206
|
+
unlinkOk = !linkResult.alreadyExisted;
|
207
|
+
linkedNewFiles = linkResult.linkedNewFiles;
|
128
208
|
}
|
129
209
|
else {
|
130
210
|
const result = linkedFilesRootResult.unwrapErr();
|
131
|
-
|
211
|
+
const warnOrVerbose = searchee.label !== Label.INJECT ? logger.warn : logger.verbose;
|
212
|
+
warnOrVerbose({
|
213
|
+
label: searchee.label,
|
214
|
+
message: `Failed to link files for ${getLogString(newMeta)}: ${result}`,
|
215
|
+
});
|
132
216
|
const injectionResult = result === "TORRENT_NOT_COMPLETE"
|
133
217
|
? InjectionResult.TORRENT_NOT_COMPLETE
|
134
218
|
: InjectionResult.FAILURE;
|
135
|
-
|
219
|
+
logActionResult(injectionResult, newMeta, searchee, tracker, decision);
|
136
220
|
await saveTorrentFile(tracker, getMediaType(searchee), newMeta);
|
137
|
-
return injectionResult;
|
221
|
+
return { actionResult: injectionResult, linkedNewFiles };
|
138
222
|
}
|
139
223
|
}
|
140
224
|
else if (searchee.path) {
|
@@ -142,18 +226,27 @@ export async function performAction(newMeta, decision, searchee, tracker) {
|
|
142
226
|
destinationDir = dirname(searchee.path);
|
143
227
|
}
|
144
228
|
const result = await getClient().inject(newMeta, searchee, decision, destinationDir);
|
145
|
-
|
146
|
-
if (result === InjectionResult.
|
229
|
+
logActionResult(result, newMeta, searchee, tracker, decision);
|
230
|
+
if (result === InjectionResult.SUCCESS) {
|
231
|
+
// For an easy re-injection user workflow when multiple MATCH_PARTIAL
|
232
|
+
if (decision === Decision.MATCH_PARTIAL) {
|
233
|
+
await saveTorrentFile(tracker, getMediaType(searchee), newMeta);
|
234
|
+
}
|
235
|
+
}
|
236
|
+
else if (result !== InjectionResult.ALREADY_EXISTS) {
|
147
237
|
await saveTorrentFile(tracker, getMediaType(searchee), newMeta);
|
238
|
+
if (unlinkOk && destinationDir) {
|
239
|
+
unlinkMetafile(newMeta, destinationDir);
|
240
|
+
}
|
148
241
|
}
|
149
|
-
return result;
|
242
|
+
return { actionResult: result, linkedNewFiles };
|
150
243
|
}
|
151
244
|
export async function performActions(searchee, matches) {
|
152
245
|
const results = [];
|
153
246
|
for (const { tracker, assessment } of matches) {
|
154
|
-
const
|
155
|
-
results.push(
|
156
|
-
if (
|
247
|
+
const { actionResult } = await performAction(assessment.metafile, assessment.decision, searchee, tracker);
|
248
|
+
results.push(actionResult);
|
249
|
+
if (actionResult === InjectionResult.TORRENT_NOT_COMPLETE)
|
157
250
|
break;
|
158
251
|
}
|
159
252
|
return results;
|
@@ -161,19 +254,35 @@ export async function performActions(searchee, matches) {
|
|
161
254
|
function linkFile(oldPath, newPath) {
|
162
255
|
const { linkType } = getRuntimeConfig();
|
163
256
|
try {
|
257
|
+
const ogFileResolvedPath = unwrapSymlinks(oldPath);
|
164
258
|
if (linkType === LinkType.HARDLINK) {
|
165
|
-
linkSync(
|
259
|
+
linkSync(ogFileResolvedPath, newPath);
|
166
260
|
}
|
167
261
|
else {
|
168
262
|
// we need to resolve because symlinks are resolved outside
|
169
263
|
// the context of cross-seed's working directory
|
170
|
-
symlinkSync(
|
264
|
+
symlinkSync(ogFileResolvedPath, resolve(newPath));
|
171
265
|
}
|
266
|
+
return true;
|
172
267
|
}
|
173
268
|
catch (e) {
|
174
269
|
if (e.code === "EEXIST")
|
175
|
-
return;
|
270
|
+
return false;
|
176
271
|
throw e;
|
177
272
|
}
|
178
273
|
}
|
274
|
+
/**
|
275
|
+
* Recursively resolves symlinks to the original file. Differs from realpath
|
276
|
+
* in that it will not resolve directory symlinks in the middle of the path.
|
277
|
+
* @param path
|
278
|
+
*/
|
279
|
+
function unwrapSymlinks(path) {
|
280
|
+
for (let i = 0; i < 16; i++) {
|
281
|
+
if (!lstatSync(path).isSymbolicLink()) {
|
282
|
+
return path;
|
283
|
+
}
|
284
|
+
path = resolve(dirname(path), readlinkSync(path));
|
285
|
+
}
|
286
|
+
throw new Error(`too many levels of symbolic links at ${path}`);
|
287
|
+
}
|
179
288
|
//# sourceMappingURL=action.js.map
|
package/dist/action.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,WAAW,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACN,MAAM,EAEN,QAAQ,EAER,eAAe,EACf,QAAQ,EACR,UAAU,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAU,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACN,sBAAsB,EACtB,iBAAiB,GAIjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQxD,SAAS,eAAe,CACvB,MAAoB,EACpB,OAAiB,EACjB,QAA2B,EAC3B,OAAe,EACf,QAAkB;IAElB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,WAAW,GAAG,CAAC;IACjE,MAAM,OAAO,GAAG,SAAS,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhE,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAChC,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAChC,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACrC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,KAAK;YACpB,aAAa,CAAC;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,UAAU;aAC1E,CAAC,CAAC;YACH,MAAM;QACP,KAAK,eAAe,CAAC,OAAO;YAC3B,aAAa,CAAC;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,aAAa;aAC7E,CAAC,CAAC;YACH,MAAM;QACP,KAAK,eAAe,CAAC,cAAc;YAClC,aAAa,CAAC;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAM,WAAW;aACvE,CAAC,CAAC;YACH,MAAM;QACP,KAAK,eAAe,CAAC,oBAAoB;YACxC,aAAa,CAAC;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAClC,QAAQ,CACR,SAAS,MAAM,kCAAkC;aAClD,CAAC,CAAC;YACH,MAAM;QACP,KAAK,eAAe,CAAC,OAAO,CAAC;QAC7B;YACC,MAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,CAC/B,QAAQ,CACR,SAAS,MAAM,gCAAgC;aAChD,CAAC,CAAC;YACH,MAAM;IACR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACrB,OAAiB,EACjB,cAAsB,EACtB,UAAkB,EAClB,OAAmC;IAEnC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;YAChD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACV,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAChE,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YACzC,cAAc,GAAG,IAAI,CAAC;QACvB,CAAC;IACF,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACrB,QAAkB,EAClB,OAAiB,EACjB,cAAsB,EACtB,UAAkB,EAClB,OAAmC;IAEnC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAC/C,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CACxD,CAAC;QACF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CACjD,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CACpD,CAAC;QACH,CAAC;QACD,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;gBAChD,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;gBACtB,SAAS;YACV,CAAC;YACD,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,SAAS;YAChE,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;gBACzC,cAAc,GAAG,IAAI,CAAC;YACvB,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,IAAc,EAAE,cAAsB;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,UAAU,GAAG,MAAM,CAAC;QACpB,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO;IAC1D,MAAM,CAAC,OAAO,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,QAAkB,EAClB,OAAiB,EACjB,OAAe,EACf,QAA0B,EAC1B,OAAmC;IAUnC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACpD,MAAM,wBAAwB,GAAG,MAAM,SAAS,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;QAC1E,aAAa,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,EAAE;QAClD,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,iCAAiC;QACrE,CAAC,CAAC,WAAW;YACZ,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3B,IAAI,UAAkB,CAAC;IACvB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,mBAAmB,QAAQ,CAAC,IAAI,iEAAiE;aAC1G,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1C,IACC,OAAO,CAAC,aAAa;YACrB,QAAQ,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAC3C,CAAC;YACF,OAAO,WAAW,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;SAAM,CAAC;QACP,MAAM,iBAAiB,GAAG,MAAM,SAAS,EAAE,CAAC,cAAc,CACzD,QAAgC,EAChC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CACxC,CAAC;QACF,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,eAAe;gBACzC,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,CAAC,CACJ,CAAC;QACH,CAAC;QACD,UAAU,GAAG,IAAI,CAChB,iBAAiB,CAAC,MAAM,EAAE,EAC1B,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACxB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAChB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,mBAAmB,UAAU,iEAAiE;aACvG,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,QAAQ,CACd,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE;YAC/C,aAAa,EAAE,CAAC,OAAO,CAAC,aAAa;SACrC,CAAC,CACF,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,QAAQ,CACd,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE;YACzD,aAAa,EAAE,CAAC,OAAO,CAAC,aAAa;SACrC,CAAC,CACF,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAiB,EACjB,QAA0B,EAC1B,QAA2B,EAC3B,OAAe;IAEf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE/C,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC;IAED,IAAI,cAAkC,CAAC;IACvC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,qBAAqB,GAAG,MAAM,sBAAsB,CACzD,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAC;QACF,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC;YAClD,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACjD,QAAQ,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;YACtC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QAC5C,CAAC;aAAM,CAAC;YACP,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,aAAa,GAClB,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAChE,aAAa,CAAC;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,4BAA4B,YAAY,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE;aACvE,CAAC,CAAC;YACH,MAAM,eAAe,GACpB,MAAM,KAAK,sBAAsB;gBAChC,CAAC,CAAC,eAAe,CAAC,oBAAoB;gBACtC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;YAC5B,eAAe,CACd,eAAe,EACf,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,CACR,CAAC;YACF,MAAM,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;QAC1D,CAAC;IACF,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1B,2DAA2D;QAC3D,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,MAAM,CACtC,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,cAAc,CACd,CAAC;IAEF,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;QACxC,qEAAqE;QACrE,IAAI,QAAQ,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAChC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAA2B,EAC3B,OAAgC;IAEhC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;QAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAC3C,UAAU,CAAC,QAAS,EACpB,UAAU,CAAC,QAA4B,EACvC,QAAQ,EACR,OAAO,CACP,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,IAAI,YAAY,KAAK,eAAe,CAAC,oBAAoB;YAAE,MAAM;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAe;IACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC;QACJ,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,2DAA2D;YAC3D,gDAAgD;YAChD,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC;IACT,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAY;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
package/dist/arr.js
CHANGED
@@ -2,11 +2,18 @@ import chalk from "chalk";
|
|
2
2
|
import ms from "ms";
|
3
3
|
import { join as posixJoin } from "node:path/posix";
|
4
4
|
import { URLSearchParams } from "node:url";
|
5
|
+
import { SCENE_TITLE_REGEX } from "./constants.js";
|
5
6
|
import { CrossSeedError } from "./errors.js";
|
6
7
|
import { Label, logger } from "./logger.js";
|
7
8
|
import { resultOf, resultOfErr } from "./Result.js";
|
8
9
|
import { getRuntimeConfig } from "./runtimeConfig.js";
|
9
|
-
import {
|
10
|
+
import { cleanseSeparators, getApikey, isTruthy, MediaType, sanitizeUrl, stripMetaFromName, } from "./utils.js";
|
11
|
+
export function arrIdsEqual(a, b) {
|
12
|
+
return (a?.imdbId === b?.imdbId &&
|
13
|
+
a?.tmdbId === b?.tmdbId &&
|
14
|
+
a?.tvdbId === b?.tvdbId &&
|
15
|
+
a?.tvMazeId === b?.tvMazeId);
|
16
|
+
}
|
10
17
|
export async function validateUArrLs() {
|
11
18
|
const { sonarr, radarr } = getRuntimeConfig();
|
12
19
|
if (sonarr) {
|
@@ -64,12 +71,13 @@ async function makeArrApiCall(uArrL, resourcePath, params = new URLSearchParams(
|
|
64
71
|
let response;
|
65
72
|
try {
|
66
73
|
response = await fetch(url, {
|
67
|
-
signal: AbortSignal.timeout(ms("
|
74
|
+
signal: AbortSignal.timeout(ms("30 seconds")),
|
68
75
|
headers: { "X-Api-Key": apikey },
|
69
76
|
});
|
70
77
|
}
|
71
78
|
catch (networkError) {
|
72
|
-
if (networkError.name === "AbortError"
|
79
|
+
if (networkError.name === "AbortError" ||
|
80
|
+
networkError.name === "TimeoutError") {
|
73
81
|
return resultOfErr(new Error("connection timeout"));
|
74
82
|
}
|
75
83
|
return resultOfErr(networkError);
|
@@ -88,42 +96,25 @@ async function makeArrApiCall(uArrL, resourcePath, params = new URLSearchParams(
|
|
88
96
|
return resultOfErr(new Error(`Arr response was non-JSON. ${getBodySampleMessage(responseText)}`));
|
89
97
|
}
|
90
98
|
}
|
91
|
-
async function
|
92
|
-
|
93
|
-
if (response.isOk()) {
|
94
|
-
const responseBody = response.unwrap();
|
95
|
-
if ("movie" in responseBody) {
|
96
|
-
const { tvdbId, tmdbId, imdbId } = responseBody.movie;
|
97
|
-
return { tvdbId, imdbId, tmdbId };
|
98
|
-
}
|
99
|
-
else if ("series" in responseBody) {
|
100
|
-
const { tvdbId, tmdbId, imdbId } = responseBody.series;
|
101
|
-
return { tvdbId, imdbId, tmdbId };
|
102
|
-
}
|
103
|
-
}
|
104
|
-
return {};
|
99
|
+
async function getMediaFromArr(uArrL, title) {
|
100
|
+
return await makeArrApiCall(uArrL, "/api/v3/parse", new URLSearchParams({ title }));
|
105
101
|
}
|
106
|
-
function formatFoundIds(foundIds) {
|
102
|
+
export function formatFoundIds(foundIds) {
|
107
103
|
return Object.entries(foundIds)
|
108
|
-
.filter(([
|
104
|
+
.filter(([idName]) => ["imdbid", "tmdbid", "tvdbid", "tvmazeid"].includes(idName.toLowerCase()))
|
109
105
|
.map(([idName, idValue]) => {
|
110
|
-
const
|
111
|
-
|
106
|
+
const name = idName.toUpperCase().replace("ID", "");
|
107
|
+
const val = idValue ?? "N/A";
|
108
|
+
return `${chalk.yellow(name)}=${chalk.white(val)}`;
|
112
109
|
})
|
113
110
|
.join(" ");
|
114
111
|
}
|
115
|
-
function logArrQueryResult(externalIds, searchTerm,
|
116
|
-
const mediaTypeStr = mediaType === MediaType.MOVIE ? "movie" : "series";
|
117
|
-
const label = mediaType === MediaType.MOVIE ? Label.RADARR : Label.SONARR;
|
112
|
+
function logArrQueryResult(externalIds, searchTerm, label, error) {
|
118
113
|
if (error) {
|
119
114
|
if (!Object.values(externalIds).some(isTruthy)) {
|
120
115
|
logger.verbose({
|
121
116
|
label: label,
|
122
|
-
message: `Lookup failed for ${chalk.yellow(searchTerm)}
|
123
|
-
});
|
124
|
-
logger.verbose({
|
125
|
-
label: label,
|
126
|
-
message: `Make sure the ${mediaTypeStr} is added to ${capitalizeFirstLetter(label)}.`,
|
117
|
+
message: `Lookup failed for ${chalk.yellow(searchTerm)} - ${chalk.red(error.message)} - make sure the item is added to an Arr instance.`,
|
127
118
|
});
|
128
119
|
return;
|
129
120
|
}
|
@@ -137,7 +128,7 @@ function logArrQueryResult(externalIds, searchTerm, mediaType, error) {
|
|
137
128
|
const foundIdsStr = formatFoundIds(externalIds);
|
138
129
|
logger.verbose({
|
139
130
|
label: label,
|
140
|
-
message: `Found
|
131
|
+
message: `Found media for ${chalk.green.bold(searchTerm)} -> ${foundIdsStr}`,
|
141
132
|
});
|
142
133
|
}
|
143
134
|
}
|
@@ -146,44 +137,61 @@ function getRelevantArrInstances(mediaType) {
|
|
146
137
|
switch (mediaType) {
|
147
138
|
case MediaType.SEASON:
|
148
139
|
case MediaType.EPISODE:
|
149
|
-
return sonarr
|
140
|
+
return sonarr;
|
150
141
|
case MediaType.MOVIE:
|
151
|
-
return radarr
|
142
|
+
return radarr;
|
143
|
+
case MediaType.ANIME:
|
144
|
+
case MediaType.VIDEO:
|
145
|
+
return [...sonarr, ...radarr];
|
152
146
|
default:
|
153
147
|
return [];
|
154
148
|
}
|
155
149
|
}
|
156
|
-
export async function
|
150
|
+
export async function scanAllArrsForMedia(searcheeTitle, mediaType) {
|
157
151
|
const uArrLs = getRelevantArrInstances(mediaType);
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
152
|
+
if (uArrLs.length === 0) {
|
153
|
+
return resultOfErr(false);
|
154
|
+
}
|
155
|
+
const title = mediaType !== MediaType.VIDEO
|
156
|
+
? searcheeTitle.match(SCENE_TITLE_REGEX).groups.title
|
157
|
+
: cleanseSeparators(stripMetaFromName(searcheeTitle));
|
158
|
+
let error = new Error(`No ids found for ${title} | MediaType: ${mediaType.toUpperCase()}`);
|
159
|
+
for (const uArrL of uArrLs) {
|
160
|
+
const name = mediaType === MediaType.VIDEO &&
|
161
|
+
getRuntimeConfig().sonarr?.includes(uArrL)
|
162
|
+
? `${title} S00E00` // Sonarr needs season or episode
|
163
|
+
: title;
|
164
|
+
const result = await getMediaFromArr(uArrL, name);
|
165
|
+
if (result.isErr()) {
|
166
|
+
error = result.unwrapErr();
|
167
|
+
continue;
|
168
|
+
}
|
169
|
+
const response = result.unwrap();
|
170
|
+
const ids = response.movie ?? response.series ?? {};
|
171
|
+
for (const [key, value] of Object.entries(ids)) {
|
172
|
+
if (value === 0 || value === "0") {
|
173
|
+
ids[key] = undefined;
|
164
174
|
}
|
165
175
|
}
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
176
|
+
if (Object.values(ids).some(isTruthy)) {
|
177
|
+
const label = response.movie ? Label.RADARR : Label.SONARR;
|
178
|
+
logArrQueryResult(ids, name, label);
|
179
|
+
return resultOf(response);
|
180
|
+
}
|
171
181
|
}
|
182
|
+
logArrQueryResult({}, searcheeTitle, Label.ARRS, error);
|
183
|
+
return resultOfErr(false);
|
172
184
|
}
|
173
|
-
export async function getRelevantArrIds(
|
174
|
-
const
|
175
|
-
|
176
|
-
|
177
|
-
|
185
|
+
export async function getRelevantArrIds(caps, parsedMedia) {
|
186
|
+
const idSearchCaps = parsedMedia.movie
|
187
|
+
? caps.movieIdSearch
|
188
|
+
: caps.tvIdSearch;
|
189
|
+
const ids = parsedMedia.movie ?? parsedMedia.series;
|
178
190
|
return {
|
179
191
|
tvdbid: idSearchCaps.tvdbId ? ids.tvdbId : undefined,
|
180
192
|
tmdbid: idSearchCaps.tmdbId ? ids.tmdbId : undefined,
|
181
193
|
imdbid: idSearchCaps.imdbId ? ids.imdbId : undefined,
|
194
|
+
tvmazeid: idSearchCaps.tvMazeId ? ids.tvMazeId : undefined,
|
182
195
|
};
|
183
196
|
}
|
184
|
-
export async function getAvailableArrIds(searchee) {
|
185
|
-
const mediaType = getMediaType(searchee);
|
186
|
-
const result = await scanAllArrsForExternalIds(searchee, mediaType);
|
187
|
-
return result.orElse({});
|
188
|
-
}
|
189
197
|
//# sourceMappingURL=arr.js.map
|
package/dist/arr.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"arr.js","sourceRoot":"","sources":["../src/arr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"arr.js","sourceRoot":"","sources":["../src/arr.ts"],"names":[],"mappings":"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"}
|