cross-seed 3.0.0 → 3.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.
package/README.md CHANGED
@@ -19,7 +19,7 @@ delivery into your client.
19
19
 
20
20
  ## Requirements
21
21
 
22
- - [Node 12+](https://nodejs.org/en/download)
22
+ - [Node 14+](https://nodejs.org/en/download)
23
23
  - [Jackett](https://github.com/Jackett/Jackett)
24
24
 
25
25
  It will work on Mac and on Linux; I haven't tested it on Windows but it should
@@ -59,6 +59,7 @@ Options:
59
59
  -i, --torrent-dir <dir> Directory with torrent files
60
60
  -s, --output-dir <dir> Directory to save results in
61
61
  -a, --search-all Search for all torrents regardless of their contents (default: false)
62
+ --fuzzy-size-threshold <decimal> The size difference allowed to be considered a match. (default: 0.02)
62
63
  -v, --verbose Log verbose output (default: false)
63
64
  -A, --action <action> If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client. (choices: "save", "inject", default: "save")
64
65
  --rtorrent-rpc-url <url> The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.
package/dist/cmd.js CHANGED
@@ -1,19 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import chalk from "chalk";
3
3
  import { Option, program } from "commander";
4
+ import { createRequire } from "module";
4
5
  import { inspect } from "util";
5
6
  import { generateConfig, getFileConfig } from "./configuration.js";
6
7
  import { Action } from "./constants.js";
7
8
  import { dropDatabase } from "./db.js";
9
+ import { diffCmd } from "./diff.js";
8
10
  import { CrossSeedError } from "./errors.js";
9
11
  import { initializeLogger, Label, logger } from "./logger.js";
10
12
  import { main } from "./pipeline.js";
11
13
  import { initializePushNotifier, sendTestNotification, } from "./pushNotifier.js";
12
14
  import { setRuntimeConfig } from "./runtimeConfig.js";
15
+ import { createSearcheeFromMetafile } from "./searchee.js";
13
16
  import { serve } from "./server.js";
14
17
  import "./signalHandlers.js";
15
18
  import { doStartupValidation } from "./startup.js";
16
- import { createRequire } from "module";
19
+ import { parseTorrentFromFilename } from "./torrent.js";
17
20
  const require = createRequire(import.meta.url);
18
21
  const packageDotJson = require("../package.json");
19
22
  function fallback(...args) {
@@ -28,107 +31,118 @@ function processOptions(options) {
28
31
  options.trackers = (_a = options.trackers) === null || _a === void 0 ? void 0 : _a.split(",").filter((e) => e !== "");
29
32
  return options;
30
33
  }
31
- async function run() {
32
- const fileConfig = await getFileConfig();
33
- function createCommandWithSharedOptions(name, description) {
34
- var _a;
35
- return program
36
- .command(name)
37
- .description(description)
38
- .requiredOption("-u, --jackett-server-url <url>", "Your Jackett server url", fileConfig.jackettServerUrl)
39
- .requiredOption("-k, --jackett-api-key <key>", "Your Jackett API key", fileConfig.jackettApiKey)
40
- .requiredOption("-t, --trackers <tracker1>,<tracker2>", "Comma-separated list of Jackett tracker ids to search (Tracker ids can be found in their Torznab feed paths)", fallback((_a = fileConfig.trackers) === null || _a === void 0 ? void 0 : _a.join(","), ""))
41
- .requiredOption("-i, --torrent-dir <dir>", "Directory with torrent files", fileConfig.torrentDir)
42
- .requiredOption("-s, --output-dir <dir>", "Directory to save results in", fileConfig.outputDir)
43
- .requiredOption("-a, --search-all", "Search for all torrents regardless of their contents", fallback(fileConfig.searchAll, false))
44
- .option("-x, --exclude-older <cutoff>", "Exclude torrents first seen more than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeOlder)
45
- .option("-r, --exclude-recent-search <cutoff>", "Exclude torrents which have been searched more recently than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeRecentSearch)
46
- .requiredOption("-v, --verbose", "Log verbose output", false)
47
- .addOption(new Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
48
- .default(fallback(fileConfig.action, Action.SAVE))
49
- .choices(Object.values(Action))
50
- .makeOptionMandatory())
51
- .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.rtorrentRpcUrl)
52
- .option("--qbittorrent-url <url>", "The url of your qBittorrent webui. Requires '-A inject'. See the docs for more information.", fileConfig.qbittorrentUrl)
53
- .option("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl);
54
- }
55
- program.name(packageDotJson.name);
56
- program.description(chalk.yellow.bold("cross-seed"));
57
- program.version(packageDotJson.version, "-V, --version", "output the current version");
58
- program
59
- .command("gen-config")
60
- .description("Generate a config file")
61
- .option("-d, --docker", "Generate the docker config instead of the normal one")
62
- .action((options) => {
63
- generateConfig(options);
64
- });
65
- program
66
- .command("clear-cache")
67
- .description("Clear the cache of downloaded-and-rejected torrents")
68
- .action(dropDatabase);
69
- createCommandWithSharedOptions("daemon", "Start the cross-seed daemon").action(async (options) => {
70
- try {
71
- const runtimeConfig = processOptions(options);
72
- setRuntimeConfig(runtimeConfig);
73
- initializeLogger();
74
- initializePushNotifier();
75
- logger.verbose({
76
- label: Label.CONFIGDUMP,
77
- message: inspect(runtimeConfig),
78
- });
79
- if (process.env.DOCKER_ENV === "true") {
80
- generateConfig({ docker: true });
81
- }
82
- await doStartupValidation();
83
- await serve();
34
+ const fileConfig = await getFileConfig();
35
+ function createCommandWithSharedOptions(name, description) {
36
+ var _a;
37
+ return program
38
+ .command(name)
39
+ .description(description)
40
+ .requiredOption("-u, --jackett-server-url <url>", "Your Jackett server url", fileConfig.jackettServerUrl)
41
+ .requiredOption("-k, --jackett-api-key <key>", "Your Jackett API key", fileConfig.jackettApiKey)
42
+ .requiredOption("-t, --trackers <tracker1>,<tracker2>", "Comma-separated list of Jackett tracker ids to search (Tracker ids can be found in their Torznab feed paths)", fallback((_a = fileConfig.trackers) === null || _a === void 0 ? void 0 : _a.join(","), ""))
43
+ .requiredOption("-i, --torrent-dir <dir>", "Directory with torrent files", fileConfig.torrentDir)
44
+ .requiredOption("-s, --output-dir <dir>", "Directory to save results in", fileConfig.outputDir)
45
+ .requiredOption("-a, --search-all", "Search for all torrents regardless of their contents", fallback(fileConfig.searchAll, false))
46
+ .requiredOption("--fuzzy-size-threshold <decimal>", "The size difference allowed to be considered a match.", fallback(fileConfig.fuzzySizeThreshold, 0.02))
47
+ .option("-x, --exclude-older <cutoff>", "Exclude torrents first seen more than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeOlder)
48
+ .option("-r, --exclude-recent-search <cutoff>", "Exclude torrents which have been searched more recently than n minutes ago. Bypasses the -a flag.", (n) => parseInt(n), fileConfig.excludeRecentSearch)
49
+ .requiredOption("-v, --verbose", "Log verbose output", false)
50
+ .addOption(new Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
51
+ .default(fallback(fileConfig.action, Action.SAVE))
52
+ .choices(Object.values(Action))
53
+ .makeOptionMandatory())
54
+ .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.rtorrentRpcUrl)
55
+ .option("--qbittorrent-url <url>", "The url of your qBittorrent webui. Requires '-A inject'. See the docs for more information.", fileConfig.qbittorrentUrl)
56
+ .option("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl);
57
+ }
58
+ program.name(packageDotJson.name);
59
+ program.description(chalk.yellow.bold("cross-seed"));
60
+ program.version(packageDotJson.version, "-V, --version", "output the current version");
61
+ program
62
+ .command("gen-config")
63
+ .description("Generate a config file")
64
+ .option("-d, --docker", "Generate the docker config instead of the normal one")
65
+ .action((options) => {
66
+ generateConfig(options);
67
+ });
68
+ program
69
+ .command("clear-cache")
70
+ .description("Clear the cache of downloaded-and-rejected torrents")
71
+ .action(dropDatabase);
72
+ program
73
+ .command("test-notification")
74
+ .description("Send a test notification")
75
+ .requiredOption("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl)
76
+ .action((options) => {
77
+ const runtimeConfig = processOptions(options);
78
+ setRuntimeConfig(runtimeConfig);
79
+ initializeLogger();
80
+ initializePushNotifier();
81
+ sendTestNotification();
82
+ });
83
+ program
84
+ .command("diff")
85
+ .description("Analyze two torrent files for cross-seed compatibility")
86
+ .argument("searchee")
87
+ .argument("candidate")
88
+ .action(diffCmd);
89
+ program
90
+ .command("tree")
91
+ .description("Print a torrent's file tree")
92
+ .argument("torrent")
93
+ .action(async (fn) => {
94
+ console.log(createSearcheeFromMetafile(await parseTorrentFromFilename(fn)));
95
+ });
96
+ createCommandWithSharedOptions("daemon", "Start the cross-seed daemon").action(async (options) => {
97
+ try {
98
+ const runtimeConfig = processOptions(options);
99
+ setRuntimeConfig(runtimeConfig);
100
+ initializeLogger();
101
+ initializePushNotifier();
102
+ logger.verbose({
103
+ label: Label.CONFIGDUMP,
104
+ message: inspect(runtimeConfig),
105
+ });
106
+ if (process.env.DOCKER_ENV === "true") {
107
+ generateConfig({ docker: true });
84
108
  }
85
- catch (e) {
86
- if (e instanceof CrossSeedError) {
87
- e.print();
88
- process.exitCode = 1;
89
- return;
90
- }
91
- throw e;
109
+ await doStartupValidation();
110
+ await serve();
111
+ }
112
+ catch (e) {
113
+ if (e instanceof CrossSeedError) {
114
+ e.print();
115
+ process.exitCode = 1;
116
+ return;
92
117
  }
93
- });
94
- program
95
- .command("test-notification")
96
- .description("Send a test notification")
97
- .requiredOption("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl)
98
- .action((options) => {
118
+ throw e;
119
+ }
120
+ });
121
+ createCommandWithSharedOptions("search", "Search for cross-seeds")
122
+ .requiredOption("-o, --offset <offset>", "Offset to start from", (n) => parseInt(n), 0)
123
+ .requiredOption("-d, --delay <delay>", "Pause duration (seconds) between searches", parseFloat, fallback(fileConfig.delay, 10))
124
+ .option("-e, --include-episodes", "Include single-episode torrents in the search", fallback(fileConfig.includeEpisodes, false))
125
+ .action(async (options) => {
126
+ try {
99
127
  const runtimeConfig = processOptions(options);
100
128
  setRuntimeConfig(runtimeConfig);
101
129
  initializeLogger();
102
130
  initializePushNotifier();
103
- sendTestNotification();
104
- });
105
- createCommandWithSharedOptions("search", "Search for cross-seeds")
106
- .requiredOption("-o, --offset <offset>", "Offset to start from", (n) => parseInt(n), 0)
107
- .requiredOption("-d, --delay <delay>", "Pause duration (seconds) between searches", parseFloat, fallback(fileConfig.delay, 10))
108
- .option("-e, --include-episodes", "Include single-episode torrents in the search", fallback(fileConfig.includeEpisodes, false))
109
- .action(async (options) => {
110
- try {
111
- const runtimeConfig = processOptions(options);
112
- setRuntimeConfig(runtimeConfig);
113
- initializeLogger();
114
- initializePushNotifier();
115
- logger.verbose({
116
- label: Label.CONFIGDUMP,
117
- message: inspect(runtimeConfig),
118
- });
119
- await doStartupValidation();
120
- await main();
121
- }
122
- catch (e) {
123
- if (e instanceof CrossSeedError) {
124
- e.print();
125
- process.exitCode = 1;
126
- return;
127
- }
128
- throw e;
131
+ logger.verbose({
132
+ label: Label.CONFIGDUMP,
133
+ message: inspect(runtimeConfig),
134
+ });
135
+ await doStartupValidation();
136
+ await main();
137
+ }
138
+ catch (e) {
139
+ if (e instanceof CrossSeedError) {
140
+ e.print();
141
+ process.exitCode = 1;
142
+ return;
129
143
  }
130
- });
131
- await program.parseAsync();
132
- }
133
- run();
144
+ throw e;
145
+ }
146
+ });
147
+ await program.parseAsync();
134
148
  //# sourceMappingURL=cmd.js.map
package/dist/cmd.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,9 @@ module.exports = {
22
22
  // search for all torrents, regardless of their contents
23
23
  // this option overrides includeEpisodes.
24
24
  searchAll: false,
25
+ // fuzzy size match threshold
26
+ // decimal value (0.02 = 2%)
27
+ fuzzySizeThreshold: 0.02,
25
28
  // Exclude torrents first seen more than n minutes ago.
26
29
  excludeOlder: undefined,
27
30
  // Exclude torrents which have been searched
@@ -1 +1 @@
1
- {"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,gBAAgB,EAAE,+BAA+B;IACjD,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,UAAU,EAAE,2BAA2B;IAEvC,gEAAgE;IAChE,SAAS,EAAE,GAAG;IAEd,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
1
+ {"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,gBAAgB,EAAE,+BAA+B;IACjD,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,UAAU,EAAE,2BAA2B;IAEvC,gEAAgE;IAChE,SAAS,EAAE,GAAG;IAEd,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,6BAA6B;IAC7B,4BAA4B;IAC5B,kBAAkB,EAAE,IAAI;IAExB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
@@ -26,6 +26,9 @@ module.exports = {
26
26
  // search for all torrents, regardless of their contents
27
27
  // this option overrides includeEpisodes.
28
28
  searchAll: false,
29
+ // fuzzy size match threshold
30
+ // decimal value (0.02 = 2%)
31
+ fuzzySizeThreshold: 0.02,
29
32
  // Exclude torrents first seen more than n minutes ago.
30
33
  excludeOlder: undefined,
31
34
  // Exclude torrents which have been searched
@@ -1 +1 @@
1
- {"version":3,"file":"config.template.docker.cjs","sourceRoot":"","sources":["../src/config.template.docker.cjs"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,gBAAgB,EAAE,6BAA6B;IAC/C,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,gCAAgC;IAChC,2DAA2D;IAC3D,UAAU,EAAE,WAAW;IAEvB,gEAAgE;IAChE,gCAAgC;IAChC,2DAA2D;IAC3D,SAAS,EAAE,cAAc;IAEzB,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
1
+ {"version":3,"file":"config.template.docker.cjs","sourceRoot":"","sources":["../src/config.template.docker.cjs"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wBAAwB;AAExB,MAAM,CAAC,OAAO,GAAG;IAChB,gBAAgB,EAAE,6BAA6B;IAC/C,aAAa,EAAE,2BAA2B;IAE1C,4EAA4E;IAC5E,4DAA4D;IAC5D,KAAK,EAAE,EAAE;IAET,qBAAqB;IACrB,gDAAgD;IAChD,uDAAuD;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnC,sCAAsC;IACtC,+CAA+C;IAC/C,2CAA2C;IAC3C,8CAA8C;IAC9C,gCAAgC;IAChC,2DAA2D;IAC3D,UAAU,EAAE,WAAW;IAEvB,gEAAgE;IAChE,gCAAgC;IAChC,2DAA2D;IAC3D,SAAS,EAAE,cAAc;IAEzB,gDAAgD;IAChD,eAAe,EAAE,KAAK;IAEtB,wDAAwD;IACxD,yCAAyC;IACzC,SAAS,EAAE,KAAK;IAEhB,6BAA6B;IAC7B,4BAA4B;IAC5B,kBAAkB,EAAE,IAAI;IAExB,uDAAuD;IACvD,YAAY,EAAE,SAAS;IAEvB,4CAA4C;IAC5C,oCAAoC;IACpC,mBAAmB,EAAE,SAAS;IAE9B,oCAAoC;IACpC,6DAA6D;IAC7D,MAAM,EAAE,MAAM;IAEd,6CAA6C;IAC7C,uCAAuC;IACvC,wEAAwE;IACxE,cAAc,EAAE,SAAS;IAEzB,qCAAqC;IACrC,uCAAuC;IACvC,4DAA4D;IAC5D,4CAA4C;IAC5C,cAAc,EAAE,SAAS;IAEzB,iDAAiD;IACjD,0CAA0C;IAC1C,2CAA2C;IAC3C,sBAAsB,EAAE,SAAS;CACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAyBlD,MAAM,UAAU,MAAM;IACrB,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,GACQ;IACtB,YAAY,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC7B,oBAAoB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CACjD,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;KACP;IACD,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;KACV;AACF,CAAC"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AA0BlD,MAAM,UAAU,MAAM;IACrB,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,GACQ;IACtB,YAAY,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC7B,oBAAoB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CACjD,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;KACP;IACD,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;KACV;AACF,CAAC"}
package/dist/db.js CHANGED
@@ -5,13 +5,14 @@ import path from "path";
5
5
  import rimraf from "rimraf";
6
6
  import { appDir, createAppDir } from "./configuration.js";
7
7
  createAppDir();
8
- const db = new LowSync(new JSONFileSync(path.join(appDir(), "cache.json")));
9
8
  const emptyDatabase = {
10
9
  searchees: {},
11
10
  decisions: {},
12
11
  indexedTorrents: [],
13
12
  dbVersion: 3,
14
13
  };
14
+ const db = new LowSync(new JSONFileSync(path.join(appDir(), "cache.json")));
15
+ db.read();
15
16
  (_a = db.data) !== null && _a !== void 0 ? _a : (db.data = emptyDatabase);
16
17
  const dbVersion = db.data.dbVersion;
17
18
  if (!dbVersion || dbVersion < emptyDatabase.dbVersion) {
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG1D,YAAY,EAAE,CAAC;AA4Bf,MAAM,EAAE,GAAG,IAAI,OAAO,CACrB,IAAI,YAAY,CAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAC3D,CAAC;AAEF,MAAM,aAAa,GAAG;IACrB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,CAAC;CACZ,CAAC;AAEF,MAAA,EAAE,CAAC,IAAI,oCAAP,EAAE,CAAC,IAAI,GAAK,aAAa,EAAC;AAE1B,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAEpC,IAAI,CAAC,SAAS,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE;IACtD,EAAE,CAAC,IAAI,GAAG,aAAa,CAAC;CACxB;AAED,EAAE,CAAC,KAAK,EAAE,CAAC;AAEX,MAAM,UAAU,YAAY;IAC3B,EAAE,CAAC,IAAI,GAAG,aAAa,CAAC;IACxB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG1D,YAAY,EAAE,CAAC;AA4Bf,MAAM,aAAa,GAAG;IACrB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,EAAE,GAAG,IAAI,OAAO,CACrB,IAAI,YAAY,CAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAC3D,CAAC;AAEF,EAAE,CAAC,IAAI,EAAE,CAAC;AAEV,MAAA,EAAE,CAAC,IAAI,oCAAP,EAAE,CAAC,IAAI,GAAK,aAAa,EAAC;AAE1B,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAEpC,IAAI,CAAC,SAAS,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE;IACtD,EAAE,CAAC,IAAI,GAAG,aAAa,CAAC;CACxB;AAED,EAAE,CAAC,KAAK,EAAE,CAAC;AAEX,MAAM,UAAU,YAAY;IAC3B,EAAE,CAAC,IAAI,GAAG,aAAa,CAAC;IACxB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,eAAe,EAAE,CAAC"}
package/dist/decide.js CHANGED
@@ -6,6 +6,7 @@ import { Decision, TORRENT_CACHE_FOLDER } from "./constants.js";
6
6
  import db from "./db.js";
7
7
  import { Label, logger } from "./logger.js";
8
8
  import { parseTorrentFromFilename, parseTorrentFromURL } from "./torrent.js";
9
+ import { getRuntimeConfig } from "./runtimeConfig.js";
9
10
  const createReasonLogger = (Title, tracker, name) => (decision, cached) => {
10
11
  function logReason(reason) {
11
12
  logger.verbose({
@@ -41,7 +42,7 @@ const createReasonLogger = (Title, tracker, name) => (decision, cached) => {
41
42
  else
42
43
  logReason(reason);
43
44
  };
44
- function compareFileTrees(candidate, searchee) {
45
+ export function compareFileTrees(candidate, searchee) {
45
46
  const cmp = (elOfA, elOfB) => {
46
47
  const lengthsAreEqual = elOfB.length === elOfA.length;
47
48
  const pathsAreEqual = elOfB.path === elOfA.path;
@@ -50,9 +51,10 @@ function compareFileTrees(candidate, searchee) {
50
51
  return candidate.files.every((elOfA) => searchee.files.some((elOfB) => cmp(elOfA, elOfB)));
51
52
  }
52
53
  function sizeDoesMatch(resultSize, searchee) {
54
+ const { fuzzySizeThreshold } = getRuntimeConfig();
53
55
  const { length } = searchee;
54
- const lowerBound = length - 0.02 * length;
55
- const upperBound = length + 0.02 * length;
56
+ const lowerBound = length - fuzzySizeThreshold * length;
57
+ const upperBound = length + fuzzySizeThreshold * length;
56
58
  return resultSize >= lowerBound && resultSize <= upperBound;
57
59
  }
58
60
  async function assessResultHelper({ Link, Size }, searchee, hashesToExclude) {
@@ -1 +1 @@
1
- {"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,YAA0B,MAAM,eAAe,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAO7E,MAAM,kBAAkB,GACvB,CAAC,KAAa,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE,CACjD,CAAC,QAAkB,EAAE,MAAM,EAAQ,EAAE;IACpC,SAAS,SAAS,CAAC,MAAM;QACxB,MAAM,CAAC,OAAO,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,IAAI,mBAAmB,OAAO,YAAY,KAAK,MAAM,MAAM,EAAE;SACzE,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC;IACX,QAAQ,QAAQ,EAAE;QACjB,KAAK,QAAQ,CAAC,KAAK;YAClB,OAAO;QACR,KAAK,QAAQ,CAAC,aAAa;YAC1B,MAAM,GAAG,yBAAyB,CAAC;YACnC,MAAM;QACP,KAAK,QAAQ,CAAC,gBAAgB;YAC7B,MAAM,GAAG,iCAAiC,CAAC;YAC3C,MAAM;QACP,KAAK,QAAQ,CAAC,eAAe;YAC5B,MAAM,GAAG,qCAAqC,CAAC;YAC/C,MAAM;QACP,KAAK,QAAQ,CAAC,wBAAwB;YACrC,MAAM,GAAG,kDAAkD,CAAC;YAC5D,MAAM;QACP,KAAK,QAAQ,CAAC,kBAAkB;YAC/B,MAAM,GAAG,8BAA8B,CAAC;YACxC,MAAM;QACP;YACC,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM;KACP;IACD,IAAI,MAAM;QAAE,SAAS,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC;;QACvC,SAAS,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,SAAmB,EAAE,QAAkB;IAChE,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACtD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;QAEhD,OAAO,eAAe,IAAI,aAAa,CAAC;IACzC,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACjD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAAU,EAAE,QAAQ;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAC1C,OAAO,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,EAAE,IAAI,EAAE,IAAI,EAAiB,EAC7B,QAAkB,EAClB,eAAyB;IAEzB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;QACnC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;KAC5C;IAED,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAE1D,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC;IAEzD,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC;KACvD;IAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;QACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAC;KACjD;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC7C,OAAO,UAAU,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,GAAG,QAAQ,iBAAiB,CAAC,CACvE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,wBAAwB,CAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,GAAG,QAAQ,iBAAiB,CAAC,CACvE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACvC,aAAa,CACZ,IAAI,CAAC,IAAI,CACR,MAAM,EAAE,EACR,oBAAoB,EACpB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,CACjC,EACD,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAChC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,MAAqB,EACrB,QAAkB,EAClB,mBAA6B;;;IAE7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpE,YAAA,EAAE,CAAC,IAAI,CAAC,SAAS,OAAC,QAAQ,CAAC,IAAI,8CAAM,EAAE,EAAC;IACxC,MAAM,UAAU,GAAkB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAEzE,IAAI,UAA4B,CAAC;IACjC,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE;QACzD,mBAAmB;QACnB,UAAU,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC/C,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACrC;SAAM,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACnE,eAAe;QACf,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACtD,oCAAoC;YACpC,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC;YAC7D,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;gBAC9C,UAAU,CAAC,QAAQ,CAAC;SACrB;aAAM;YACN,UAAU,GAAG;gBACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,IAAI,EAAE,MAAM,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;aACrD,CAAC;SACF;KACD;SAAM;QACN,yBAAyB;QACzB,UAAU,GAAG,MAAM,kBAAkB,CACpC,MAAM,EACN,QAAQ,EACR,mBAAmB,CACnB,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;YACxC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;QAEF,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE;YAC3C,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;gBAC9C,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1B,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAClC;QACD,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KACtC;IACD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7D,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,OAAO,EAAE,mBAAmB,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"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"}
package/dist/diff.js ADDED
@@ -0,0 +1,23 @@
1
+ import { createSearcheeFromMetafile } from "./searchee.js";
2
+ import { parseTorrentFromFilename } from "./torrent.js";
3
+ import { deepStrictEqual } from "assert";
4
+ function diff(thing1, thing2) {
5
+ try {
6
+ deepStrictEqual(thing1, thing2);
7
+ console.log(thing1);
8
+ console.log("Torrents are equal");
9
+ }
10
+ catch (e) {
11
+ console.log(e);
12
+ }
13
+ }
14
+ export async function diffCmd(first, second) {
15
+ const firstMeta = await parseTorrentFromFilename(first);
16
+ const secondMeta = await parseTorrentFromFilename(second);
17
+ const firstSearchee = createSearcheeFromMetafile(firstMeta);
18
+ const secondSearchee = createSearcheeFromMetafile(secondMeta);
19
+ delete firstSearchee.infoHash;
20
+ delete secondSearchee.infoHash;
21
+ diff(firstSearchee, secondSearchee);
22
+ }
23
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM;IAC3B,IAAI;QACH,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;KAClC;IAAC,OAAO,CAAC,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAa,EAAE,MAAc;IAC1D,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,aAAa,CAAC,QAAQ,CAAC;IAC9B,OAAO,cAAc,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACrC,CAAC"}
package/dist/logger.js CHANGED
@@ -2,6 +2,7 @@ import { join } from "path";
2
2
  import winston from "winston";
3
3
  import { appDir, createAppDir } from "./configuration.js";
4
4
  import { getRuntimeConfig } from "./runtimeConfig.js";
5
+ import DailyRotateFile from "winston-daily-rotate-file";
5
6
  export var Label;
6
7
  (function (Label) {
7
8
  Label["QBITTORRENT"] = "qbittorrent";
@@ -52,15 +53,27 @@ export function initializeLogger() {
52
53
  return `${timestamp} ${level}: ${label ? `[${label}] ` : ""}${redactMessage(message)}`;
53
54
  })),
54
55
  transports: [
55
- new winston.transports.File({
56
- filename: join(appDir(), "logs", "error.log"),
56
+ new DailyRotateFile({
57
+ filename: "error.%DATE%.log",
58
+ createSymlink: true,
59
+ symlinkName: "error.current.log",
60
+ dirname: join(appDir(), "logs"),
61
+ maxFiles: "14d",
57
62
  level: "error",
58
63
  }),
59
- new winston.transports.File({
60
- filename: join(appDir(), "logs", "info.log"),
64
+ new DailyRotateFile({
65
+ filename: "info.%DATE%.log",
66
+ createSymlink: true,
67
+ symlinkName: "info.current.log",
68
+ dirname: join(appDir(), "logs"),
69
+ maxFiles: "14d",
61
70
  }),
62
- new winston.transports.File({
63
- filename: join(appDir(), "logs", "verbose.log"),
71
+ new DailyRotateFile({
72
+ filename: "verbose.%DATE%.log",
73
+ createSymlink: true,
74
+ symlinkName: "verbose.current.log",
75
+ dirname: join(appDir(), "logs"),
76
+ maxFiles: "14d",
64
77
  level: "silly",
65
78
  }),
66
79
  new winston.transports.Console({
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,aAAa,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,aAAa,CAAC;AACtB,CAAC"}
package/dist/searchee.js CHANGED
@@ -28,17 +28,20 @@ function getFilesFromTorrent(meta) {
28
28
  });
29
29
  return sortBy(unsortedFiles, "path");
30
30
  }
31
+ export function createSearcheeFromMetafile(meta) {
32
+ return {
33
+ files: getFilesFromTorrent(meta),
34
+ infoHash: meta.infoHash,
35
+ name: meta.name,
36
+ length: meta.length,
37
+ };
38
+ }
31
39
  export async function createSearcheeFromTorrentFile(filename) {
32
40
  const { torrentDir } = getRuntimeConfig();
33
41
  const fullPath = join(torrentDir, filename);
34
42
  try {
35
43
  const meta = await parseTorrentFromFilename(fullPath);
36
- return {
37
- files: getFilesFromTorrent(meta),
38
- infoHash: meta.infoHash,
39
- name: meta.name,
40
- length: meta.length,
41
- };
44
+ return createSearcheeFromMetafile(meta);
42
45
  }
43
46
  catch (e) {
44
47
  logger.error(`Failed to parse ${filename}`);
@@ -1 +1 @@
1
- {"version":3,"file":"searchee.js","sourceRoot":"","sources":["../src/searchee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAerC,SAAS,mBAAmB,CAAC,IAAc;IAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,OAAO;YACN;gBACC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB;SACD,CAAC;KACF;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,eAAe,GAAa,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAClE,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO;YACN,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,mDAAmD;YACnD,qDAAqD;YACrD,+CAA+C;YAC/C,wBAAwB;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,QAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI;QACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO;YACN,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC;KACF;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;KACT;AACF,CAAC"}
1
+ {"version":3,"file":"searchee.js","sourceRoot":"","sources":["../src/searchee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAerC,SAAS,mBAAmB,CAAC,IAAc;IAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,OAAO;YACN;gBACC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB;SACD,CAAC;KACF;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,eAAe,GAAa,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAClE,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO;YACN,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,mDAAmD;YACnD,qDAAqD;YACrD,+CAA+C;YAC/C,wBAAwB;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACxD,OAAO;QACN,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,QAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI;QACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;KACT;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cross-seed",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Query Jackett for cross-seedable torrents",
5
5
  "scripts": {
6
6
  "test": "true",
@@ -35,6 +35,7 @@
35
35
  "rimraf": "^3.0.2",
36
36
  "simple-get": "^4.0.0",
37
37
  "winston": "^3.3.3",
38
+ "winston-daily-rotate-file": "^4.5.5",
38
39
  "xmlrpc": "^1.3.2"
39
40
  },
40
41
  "devDependencies": {