cross-seed 6.12.0-5 → 6.12.0-7
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 +72 -71
- package/dist/action.js.map +1 -1
- package/dist/arr.js +2 -2
- package/dist/arr.js.map +1 -1
- package/dist/clients/Deluge.js +11 -8
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +20 -11
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +25 -32
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +38 -4
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +11 -8
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +3 -1
- package/dist/cmd.js.map +1 -1
- package/dist/configSchema.js +5 -4
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js.map +1 -1
- package/dist/dataFiles.js +28 -28
- package/dist/dataFiles.js.map +1 -1
- package/dist/db.js +10 -19
- package/dist/db.js.map +1 -1
- package/dist/decide.js +20 -20
- package/dist/decide.js.map +1 -1
- package/dist/inject.js +56 -35
- package/dist/inject.js.map +1 -1
- package/dist/jobs.js +19 -9
- package/dist/jobs.js.map +1 -1
- package/dist/migrations/09-clientAndDataSearchees.js +3 -3
- package/dist/migrations/09-clientAndDataSearchees.js.map +1 -1
- package/dist/parseTorrent.js +1 -1
- package/dist/parseTorrent.js.map +1 -1
- package/dist/pipeline.js +54 -59
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +5 -5
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +5 -5
- package/dist/pushNotifier.js.map +1 -1
- package/dist/runtimeConfig.js.map +1 -1
- package/dist/searchee.js +88 -46
- package/dist/searchee.js.map +1 -1
- package/dist/server.js +10 -7
- package/dist/server.js.map +1 -1
- package/dist/startup.js +8 -13
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +54 -48
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +4 -4
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +213 -190
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/utils.js
CHANGED
@@ -1,22 +1,52 @@
|
|
1
1
|
import chalk from "chalk";
|
2
2
|
import { distance } from "fastest-levenshtein";
|
3
|
-
import {
|
3
|
+
import { access, readdir } from "fs/promises";
|
4
4
|
import path from "path";
|
5
|
-
import { ALL_EXTENSIONS, ANIME_REGEX,
|
5
|
+
import { ALL_EXTENSIONS, ANIME_REGEX, EP_REGEX, JSON_VALUES_REGEX, LEVENSHTEIN_DIVISOR, MOVIE_REGEX, NON_UNICODE_ALPHANUM_REGEX, RELEASE_GROUP_REGEX, REPACK_PROPER_REGEX, RESOLUTION_REGEX, SCENE_TITLE_REGEX, SEASON_REGEX, sourceRegexRemove, YEARS_REGEX, } from "./constants.js";
|
6
6
|
import { logger } from "./logger.js";
|
7
7
|
import { resultOf, resultOfErr } from "./Result.js";
|
8
|
-
import { getRuntimeConfig } from "./runtimeConfig.js";
|
9
8
|
import { getAllTitles } from "./searchee.js";
|
10
|
-
export var Mutex;
|
11
|
-
(function (Mutex) {
|
12
|
-
Mutex["INDEX_TORRENTS_AND_DATA_DIRS"] = "INDEX_TORRENTS_AND_DATA_DIRS";
|
13
|
-
Mutex["CREATE_ALL_SEARCHEES"] = "CREATE_ALL_SEARCHEES";
|
14
|
-
Mutex["CLIENT_INJECTION"] = "CLIENT_INJECTION";
|
15
|
-
})(Mutex || (Mutex = {}));
|
16
|
-
const mutexes = new Map();
|
17
9
|
export function isTruthy(value) {
|
18
10
|
return Boolean(value);
|
19
11
|
}
|
12
|
+
// ==================================== OS ====================================
|
13
|
+
export async function exists(path) {
|
14
|
+
try {
|
15
|
+
await access(path);
|
16
|
+
return true;
|
17
|
+
}
|
18
|
+
catch {
|
19
|
+
return false;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
export async function notExists(path) {
|
23
|
+
try {
|
24
|
+
await access(path);
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
catch {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
export async function countDirEntriesRec(dirs, maxDataDepth) {
|
32
|
+
if (maxDataDepth === 0)
|
33
|
+
return 0;
|
34
|
+
let count = 0;
|
35
|
+
for (const dir of dirs) {
|
36
|
+
const newDirs = [];
|
37
|
+
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
38
|
+
count++;
|
39
|
+
if (entry.isDirectory())
|
40
|
+
newDirs.push(path.join(dir, entry.name));
|
41
|
+
}
|
42
|
+
count += await countDirEntriesRec(newDirs, maxDataDepth - 1);
|
43
|
+
}
|
44
|
+
return count;
|
45
|
+
}
|
46
|
+
// ================================ EXTENSIONS ================================
|
47
|
+
export function hasExt(files, exts) {
|
48
|
+
return files.some((f) => exts.includes(path.extname(f.name.toLowerCase())));
|
49
|
+
}
|
20
50
|
export function stripExtension(filename) {
|
21
51
|
for (const ext of ALL_EXTENSIONS) {
|
22
52
|
if (filename.endsWith(ext))
|
@@ -24,12 +54,48 @@ export function stripExtension(filename) {
|
|
24
54
|
}
|
25
55
|
return filename;
|
26
56
|
}
|
57
|
+
export function filesWithExt(files, exts) {
|
58
|
+
return files.filter((f) => exts.includes(path.extname(f.name.toLowerCase())));
|
59
|
+
}
|
60
|
+
export async function findAFileWithExt(dir, exts) {
|
61
|
+
try {
|
62
|
+
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
63
|
+
const fullPath = path.join(dir, entry.name);
|
64
|
+
if (entry.isFile() && exts.includes(path.extname(fullPath))) {
|
65
|
+
return fullPath;
|
66
|
+
}
|
67
|
+
if (entry.isDirectory()) {
|
68
|
+
const file = await findAFileWithExt(fullPath, exts);
|
69
|
+
if (file)
|
70
|
+
return file;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
catch (e) {
|
75
|
+
logger.debug(e);
|
76
|
+
}
|
77
|
+
return null;
|
78
|
+
}
|
79
|
+
// =================================== TIME ===================================
|
27
80
|
export function nMsAgo(n) {
|
28
81
|
return Date.now() - n;
|
29
82
|
}
|
30
83
|
export function wait(n) {
|
31
84
|
return new Promise((resolve) => setTimeout(resolve, n));
|
32
85
|
}
|
86
|
+
export async function time(cb, times) {
|
87
|
+
const before = performance.now();
|
88
|
+
try {
|
89
|
+
return await cb();
|
90
|
+
}
|
91
|
+
finally {
|
92
|
+
times.push(performance.now() - before);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
// ================================= LOGGING =================================
|
96
|
+
export function humanReadableDate(timestamp) {
|
97
|
+
return new Date(timestamp).toLocaleString("sv");
|
98
|
+
}
|
33
99
|
export function humanReadableSize(bytes, options) {
|
34
100
|
if (bytes === 0)
|
35
101
|
return "0 B";
|
@@ -42,39 +108,37 @@ export function humanReadableSize(bytes, options) {
|
|
42
108
|
const coefficient = bytes / Math.pow(k, exponent);
|
43
109
|
return `${parseFloat(coefficient.toFixed(2))} ${sizes[exponent]}`;
|
44
110
|
}
|
45
|
-
export function
|
46
|
-
|
111
|
+
export function getLogString(searchee, color = chalk.reset) {
|
112
|
+
if (searchee.title === searchee.name) {
|
113
|
+
return searchee.infoHash || searchee.clientHost
|
114
|
+
? `${color(searchee.title)} ${chalk.dim(`[${searchee.infoHash ? sanitizeInfoHash(searchee.infoHash) : ""}${searchee.clientHost ? `@${searchee.clientHost}` : ""}]`)}`
|
115
|
+
: searchee.path
|
116
|
+
? color(searchee.path)
|
117
|
+
: color(searchee.title);
|
118
|
+
}
|
119
|
+
return searchee.infoHash || searchee.clientHost
|
120
|
+
? `${color(searchee.title)} ${chalk.dim(`[${searchee.name} [${searchee.infoHash ? sanitizeInfoHash(searchee.infoHash) : ""}${searchee.clientHost ? `@${searchee.clientHost}` : ""}]]`)}`
|
121
|
+
: searchee.path
|
122
|
+
? `${color(searchee.title)} ${chalk.dim(`[${searchee.path}]`)}`
|
123
|
+
: `${color(searchee.title)} ${chalk.dim(`[${searchee.name}]`)}`;
|
47
124
|
}
|
48
|
-
export function
|
49
|
-
|
125
|
+
export function formatAsList(strings, options) {
|
126
|
+
if (options.sort)
|
127
|
+
strings.sort((a, b) => a.localeCompare(b));
|
128
|
+
return new Intl.ListFormat("en", {
|
129
|
+
style: options.style ?? "long",
|
130
|
+
type: options.type ?? "conjunction",
|
131
|
+
}).format(strings);
|
50
132
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
if (MOVIE_REGEX.test(title))
|
59
|
-
return MediaType.MOVIE;
|
60
|
-
if (ANIME_REGEX.test(title))
|
61
|
-
return MediaType.ANIME;
|
62
|
-
return MediaType.VIDEO;
|
63
|
-
case hasExt(files, VIDEO_DISC_EXTENSIONS):
|
64
|
-
if (MOVIE_REGEX.test(title))
|
65
|
-
return MediaType.MOVIE;
|
66
|
-
return MediaType.VIDEO;
|
67
|
-
case hasExt(files, [".rar"]):
|
68
|
-
if (MOVIE_REGEX.test(title))
|
69
|
-
return MediaType.MOVIE;
|
70
|
-
default: // Minimally supported media types
|
71
|
-
if (hasExt(files, AUDIO_EXTENSIONS))
|
72
|
-
return MediaType.AUDIO;
|
73
|
-
if (hasExt(files, BOOK_EXTENSIONS))
|
74
|
-
return MediaType.BOOK;
|
75
|
-
return MediaType.OTHER;
|
76
|
-
}
|
133
|
+
/**
|
134
|
+
* This cannot be done at the log level because of too many false positives.
|
135
|
+
* The caller will need to extract the infoHash from their specific syntax.
|
136
|
+
* @param infoHash The infoHash to sanitize
|
137
|
+
*/
|
138
|
+
export function sanitizeInfoHash(infoHash) {
|
139
|
+
return `${infoHash.slice(0, 8)}...`;
|
77
140
|
}
|
141
|
+
// ================================== TITLES ==================================
|
78
142
|
export function areMediaTitlesSimilar(a, b) {
|
79
143
|
const matchA = a.match(EP_REGEX) ??
|
80
144
|
a.match(SEASON_REGEX) ??
|
@@ -105,32 +169,6 @@ export function areMediaTitlesSimilar(a, b) {
|
|
105
169
|
titleA.includes(titleB) ||
|
106
170
|
titleB.includes(titleA)));
|
107
171
|
}
|
108
|
-
export async function time(cb, times) {
|
109
|
-
const before = performance.now();
|
110
|
-
try {
|
111
|
-
return await cb();
|
112
|
-
}
|
113
|
-
finally {
|
114
|
-
times.push(performance.now() - before);
|
115
|
-
}
|
116
|
-
}
|
117
|
-
export function sanitizeUrl(url) {
|
118
|
-
if (typeof url === "string") {
|
119
|
-
url = new URL(url);
|
120
|
-
}
|
121
|
-
return url.origin + url.pathname;
|
122
|
-
}
|
123
|
-
/**
|
124
|
-
* This cannot be done at the log level because of too many false positives.
|
125
|
-
* The caller will need to extract the infoHash from their specific syntax.
|
126
|
-
* @param infoHash The infoHash to sanitize
|
127
|
-
*/
|
128
|
-
export function sanitizeInfoHash(infoHash) {
|
129
|
-
return `${infoHash.slice(0, 8)}...`;
|
130
|
-
}
|
131
|
-
export function getApikey(url) {
|
132
|
-
return new URL(url).searchParams.get("apikey");
|
133
|
-
}
|
134
172
|
export function cleanseSeparators(str) {
|
135
173
|
return str
|
136
174
|
.replace(/\[.*?\]|「.*?」|「.*?」|【.*?】/g, "") // bracketed text
|
@@ -190,46 +228,15 @@ export function stripMetaFromName(name) {
|
|
190
228
|
.replace(RESOLUTION_REGEX, "")
|
191
229
|
.replace(REPACK_PROPER_REGEX, ""));
|
192
230
|
}
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
export async function filterAsync(arr, predicate) {
|
198
|
-
const results = await Promise.all(arr.map(predicate));
|
199
|
-
return arr.filter((_, index) => results[index]);
|
200
|
-
}
|
201
|
-
export function humanReadableDate(timestamp) {
|
202
|
-
// swedish conventions roughly follow the iso format!
|
203
|
-
return new Date(timestamp).toLocaleString("sv");
|
204
|
-
}
|
205
|
-
export function getLogString(searchee, color = chalk.reset) {
|
206
|
-
if (searchee.title === searchee.name) {
|
207
|
-
return searchee.infoHash || searchee.clientHost
|
208
|
-
? `${color(searchee.title)} ${chalk.dim(`[${searchee.infoHash ? sanitizeInfoHash(searchee.infoHash) : ""}${searchee.clientHost ? `@${searchee.clientHost}` : ""}]`)}`
|
209
|
-
: searchee.path
|
210
|
-
? color(searchee.path)
|
211
|
-
: color(searchee.title);
|
231
|
+
// =================================== URLS ===================================
|
232
|
+
export function sanitizeUrl(url) {
|
233
|
+
if (typeof url === "string") {
|
234
|
+
url = new URL(url);
|
212
235
|
}
|
213
|
-
return
|
214
|
-
? `${color(searchee.title)} ${chalk.dim(`[${searchee.name} [${searchee.infoHash ? sanitizeInfoHash(searchee.infoHash) : ""}${searchee.clientHost ? `@${searchee.clientHost}` : ""}]]`)}`
|
215
|
-
: searchee.path
|
216
|
-
? `${color(searchee.title)} ${chalk.dim(`[${searchee.path}]`)}`
|
217
|
-
: `${color(searchee.title)} ${chalk.dim(`[${searchee.name}]`)}`;
|
218
|
-
}
|
219
|
-
export function formatAsList(strings, options) {
|
220
|
-
if (options.sort)
|
221
|
-
strings.sort((a, b) => a.localeCompare(b));
|
222
|
-
return new Intl.ListFormat("en", {
|
223
|
-
style: options.style ?? "long",
|
224
|
-
type: options.type ?? "conjunction",
|
225
|
-
}).format(strings);
|
236
|
+
return url.origin + url.pathname;
|
226
237
|
}
|
227
|
-
export function
|
228
|
-
|
229
|
-
if (arg !== undefined)
|
230
|
-
return arg;
|
231
|
-
}
|
232
|
-
return undefined;
|
238
|
+
export function getApikey(url) {
|
239
|
+
return new URL(url).searchParams.get("apikey");
|
233
240
|
}
|
234
241
|
export function extractCredentialsFromUrl(url, basePath) {
|
235
242
|
try {
|
@@ -248,46 +255,29 @@ export function extractCredentialsFromUrl(url, basePath) {
|
|
248
255
|
return resultOfErr("invalid URL");
|
249
256
|
}
|
250
257
|
}
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
if (matches.length === 0)
|
263
|
-
return str;
|
264
|
-
const lastMatch = matches[matches.length - 1];
|
265
|
-
const lastMatchIndex = lastMatch.index;
|
266
|
-
const lastMatchStr = lastMatch[0];
|
267
|
-
return (str.slice(0, lastMatchIndex) +
|
268
|
-
newStr +
|
269
|
-
str.slice(lastMatchIndex + lastMatchStr.length));
|
270
|
-
}
|
271
|
-
export function escapeUnescapedQuotesInJsonValues(jsonStr) {
|
272
|
-
return jsonStr.replace(JSON_VALUES_REGEX, (match, _p1, _offset, _str, groups) => {
|
273
|
-
const escapedValue = groups.value.replace(/(?<!\\)"/g, '\\"');
|
274
|
-
return match.replace(groups.value, escapedValue);
|
275
|
-
});
|
276
|
-
}
|
277
|
-
export function extractInt(str) {
|
278
|
-
return parseInt(str.match(/\d+/)[0]);
|
258
|
+
// ================================ FUNCTIONAL ================================
|
259
|
+
export const tap = (fn) => (value) => {
|
260
|
+
fn(value);
|
261
|
+
return value;
|
262
|
+
};
|
263
|
+
export function fallback(...args) {
|
264
|
+
for (const arg of args) {
|
265
|
+
if (arg !== undefined)
|
266
|
+
return arg;
|
267
|
+
}
|
268
|
+
return undefined;
|
279
269
|
}
|
280
|
-
export function
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
: fuzzySizeThreshold;
|
270
|
+
export async function inBatches(items, cb, options = { batchSize: 100 }) {
|
271
|
+
for (let i = 0; i < items.length; i += options.batchSize) {
|
272
|
+
await cb(items.slice(i, i + options.batchSize));
|
273
|
+
}
|
285
274
|
}
|
286
|
-
export function
|
287
|
-
const
|
288
|
-
|
289
|
-
|
290
|
-
|
275
|
+
export async function fromBatches(items, cb, options = { batchSize: 100 }) {
|
276
|
+
const results = [];
|
277
|
+
for (let i = 0; i < items.length; i += options.batchSize) {
|
278
|
+
results.push(...(await cb(items.slice(i, i + options.batchSize))));
|
279
|
+
}
|
280
|
+
return results;
|
291
281
|
}
|
292
282
|
/**
|
293
283
|
* Makes comparators for `Array.prototype.sort`.
|
@@ -311,6 +301,46 @@ export function comparing(...getters) {
|
|
311
301
|
return 0;
|
312
302
|
};
|
313
303
|
}
|
304
|
+
// ================================== ASYNC ==================================
|
305
|
+
export async function filterAsync(arr, predicate) {
|
306
|
+
const results = await Promise.all(arr.map(predicate));
|
307
|
+
return arr.filter((_, index) => results[index]);
|
308
|
+
}
|
309
|
+
export async function mapAsync(arr, cb) {
|
310
|
+
return Promise.all(arr.map(cb));
|
311
|
+
}
|
312
|
+
export async function flatMapAsync(arr, cb) {
|
313
|
+
const results = await Promise.all(arr.map(cb));
|
314
|
+
return results.flat();
|
315
|
+
}
|
316
|
+
export async function reduceAsync(arr, cb, initialValue) {
|
317
|
+
let accumulator = initialValue;
|
318
|
+
for (let index = 0; index < arr.length; index++) {
|
319
|
+
accumulator = await cb(accumulator, arr[index], index, arr);
|
320
|
+
}
|
321
|
+
return accumulator;
|
322
|
+
}
|
323
|
+
export async function findAsync(it, cb) {
|
324
|
+
for (const item of it) {
|
325
|
+
if (await cb(item))
|
326
|
+
return item;
|
327
|
+
}
|
328
|
+
return undefined;
|
329
|
+
}
|
330
|
+
export async function someAsync(it, cb) {
|
331
|
+
for (const item of it) {
|
332
|
+
if (await cb(item))
|
333
|
+
return true;
|
334
|
+
}
|
335
|
+
return false;
|
336
|
+
}
|
337
|
+
export async function everyAsync(it, cb) {
|
338
|
+
for (const item of it) {
|
339
|
+
if (!(await cb(item)))
|
340
|
+
return false;
|
341
|
+
}
|
342
|
+
return true;
|
343
|
+
}
|
314
344
|
/**
|
315
345
|
* Given multiple async iterables, this function will merge/interleave
|
316
346
|
* them all into one iterable, yielding on a first-come, first-serve basis.
|
@@ -347,6 +377,36 @@ export async function* combineAsyncIterables(asyncIterables) {
|
|
347
377
|
}
|
348
378
|
return;
|
349
379
|
}
|
380
|
+
// ================================= STRINGS =================================
|
381
|
+
export function capitalizeFirstLetter(string) {
|
382
|
+
return string.charAt(0).toUpperCase() + string.slice(1);
|
383
|
+
}
|
384
|
+
/**
|
385
|
+
* Replaces the last occurrence of a GLOBAL regex match in a string
|
386
|
+
* @param str The string to replace the last occurrence in
|
387
|
+
* @param globalRegExp The regex to match (must be global)
|
388
|
+
* @param newStr The string to replace the last occurrence with
|
389
|
+
*/
|
390
|
+
export function replaceLastOccurrence(str, globalRegExp, newStr) {
|
391
|
+
const matches = Array.from(str.matchAll(globalRegExp));
|
392
|
+
if (matches.length === 0)
|
393
|
+
return str;
|
394
|
+
const lastMatch = matches[matches.length - 1];
|
395
|
+
const lastMatchIndex = lastMatch.index;
|
396
|
+
const lastMatchStr = lastMatch[0];
|
397
|
+
return (str.slice(0, lastMatchIndex) +
|
398
|
+
newStr +
|
399
|
+
str.slice(lastMatchIndex + lastMatchStr.length));
|
400
|
+
}
|
401
|
+
export function escapeUnescapedQuotesInJsonValues(jsonStr) {
|
402
|
+
return jsonStr.replace(JSON_VALUES_REGEX, (match, _p1, _offset, _str, groups) => {
|
403
|
+
const escapedValue = groups.value.replace(/(?<!\\)"/g, '\\"');
|
404
|
+
return match.replace(groups.value, escapedValue);
|
405
|
+
});
|
406
|
+
}
|
407
|
+
export function extractInt(str) {
|
408
|
+
return parseInt(str.match(/\d+/)[0]);
|
409
|
+
}
|
350
410
|
export function getPathParts(pathStr, dirnameFunc = path.dirname) {
|
351
411
|
const parts = [];
|
352
412
|
let parent = pathStr;
|
@@ -361,60 +421,23 @@ export function getPathParts(pathStr, dirnameFunc = path.dirname) {
|
|
361
421
|
}
|
362
422
|
return parts;
|
363
423
|
}
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
newDirs.push(path.join(dir, entry.name));
|
374
|
-
}
|
375
|
-
count += countDirEntriesRec(newDirs, maxDataDepth - 1);
|
376
|
-
}
|
377
|
-
return count;
|
378
|
-
}
|
379
|
-
export function findAFileWithExt(dir, exts) {
|
380
|
-
try {
|
381
|
-
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
382
|
-
const fullPath = path.join(dir, entry.name);
|
383
|
-
if (entry.isFile() && exts.includes(path.extname(fullPath))) {
|
384
|
-
return fullPath;
|
385
|
-
}
|
386
|
-
if (entry.isDirectory()) {
|
387
|
-
const file = findAFileWithExt(fullPath, exts);
|
388
|
-
if (file)
|
389
|
-
return file;
|
390
|
-
}
|
391
|
-
}
|
392
|
-
}
|
393
|
-
catch (e) {
|
394
|
-
logger.debug(e);
|
395
|
-
}
|
396
|
-
return null;
|
397
|
-
}
|
398
|
-
export async function inBatches(items, cb, options = { batchSize: 100 }) {
|
399
|
-
for (let i = 0; i < items.length; i += options.batchSize) {
|
400
|
-
await cb(items.slice(i, i + options.batchSize));
|
401
|
-
}
|
402
|
-
}
|
403
|
-
export async function fromBatches(items, cb, options = { batchSize: 100 }) {
|
404
|
-
const results = [];
|
405
|
-
for (let i = 0; i < items.length; i += options.batchSize) {
|
406
|
-
results.push(...(await cb(items.slice(i, i + options.batchSize))));
|
407
|
-
}
|
408
|
-
return results;
|
409
|
-
}
|
424
|
+
// ================================== MUTEX ==================================
|
425
|
+
export var Mutex;
|
426
|
+
(function (Mutex) {
|
427
|
+
Mutex["INDEX_TORRENTS_AND_DATA_DIRS"] = "INDEX_TORRENTS_AND_DATA_DIRS";
|
428
|
+
Mutex["CHECK_JOBS"] = "CHECK_JOBS";
|
429
|
+
Mutex["CREATE_ALL_SEARCHEES"] = "CREATE_ALL_SEARCHEES";
|
430
|
+
Mutex["CLIENT_INJECTION"] = "CLIENT_INJECTION";
|
431
|
+
})(Mutex || (Mutex = {}));
|
432
|
+
const mutexes = new Map();
|
410
433
|
/**
|
411
434
|
* Executes a callback function within a mutex for the given name.
|
412
435
|
* @param name The name of the mutex to create/use.
|
413
|
-
* @param cb The callback to execute.
|
414
436
|
* @param options.useQueue If false, concurrent calls will share the pending result.
|
437
|
+
* @param cb The callback to execute.
|
415
438
|
* @returns The result of the callback.
|
416
439
|
*/
|
417
|
-
export async function withMutex(name,
|
440
|
+
export async function withMutex(name, options, cb) {
|
418
441
|
const existingMutex = mutexes.get(name);
|
419
442
|
if (existingMutex) {
|
420
443
|
if (options.useQueue) {
|
package/dist/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|