cross-seed 6.11.2 → 6.12.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 +339 -222
- package/dist/action.js.map +1 -1
- package/dist/clients/Deluge.js +100 -55
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +147 -50
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +86 -56
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +60 -28
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +67 -33
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +10 -13
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +17 -29
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +104 -30
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +14 -11
- package/dist/dataFiles.js.map +1 -1
- package/dist/db.js +10 -7
- package/dist/db.js.map +1 -1
- package/dist/decide.js +13 -16
- package/dist/decide.js.map +1 -1
- package/dist/diff.js +5 -26
- package/dist/diff.js.map +1 -1
- package/dist/inject.js +99 -98
- package/dist/inject.js.map +1 -1
- package/dist/logger.js +26 -15
- package/dist/logger.js.map +1 -1
- package/dist/pipeline.js +127 -75
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +2 -35
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +3 -0
- package/dist/pushNotifier.js.map +1 -1
- package/dist/runtimeConfig.js.map +1 -1
- package/dist/searchee.js +136 -91
- package/dist/searchee.js.map +1 -1
- package/dist/startup.js +3 -2
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +132 -98
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +5 -5
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +26 -6
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
| @@ -10,16 +10,31 @@ import { getRuntimeConfig } from "../runtimeConfig.js"; | |
| 10 10 | 
             
            import { createSearcheeFromDB, parseTitle, updateSearcheeClientDB, } from "../searchee.js";
         | 
| 11 11 | 
             
            import { getMaxRemainingBytes, getResumeStopTime, organizeTrackers, resumeErrSleepTime, resumeSleepTime, shouldRecheck, } from "./TorrentClient.js";
         | 
| 12 12 | 
             
            import { extractCredentialsFromUrl, humanReadableSize, sanitizeInfoHash, wait, } from "../utils.js";
         | 
| 13 | 
            +
            import { inspect } from "util";
         | 
| 13 14 | 
             
            const XTransmissionSessionId = "X-Transmission-Session-Id";
         | 
| 14 15 | 
             
            function doesAlreadyExist(args) {
         | 
| 15 16 | 
             
                return "torrent-duplicate" in args;
         | 
| 16 17 | 
             
            }
         | 
| 17 18 | 
             
            export default class Transmission {
         | 
| 18 19 | 
             
                xTransmissionSessionId;
         | 
| 19 | 
            -
                 | 
| 20 | 
            +
                url;
         | 
| 21 | 
            +
                clientHost;
         | 
| 22 | 
            +
                clientPriority;
         | 
| 23 | 
            +
                clientType = Label.TRANSMISSION;
         | 
| 24 | 
            +
                readonly;
         | 
| 25 | 
            +
                label;
         | 
| 26 | 
            +
                constructor(url, priority, readonly) {
         | 
| 27 | 
            +
                    this.url = url;
         | 
| 28 | 
            +
                    this.clientHost = new URL(url).host;
         | 
| 29 | 
            +
                    this.clientPriority = priority;
         | 
| 30 | 
            +
                    this.readonly = readonly;
         | 
| 31 | 
            +
                    this.label = `${this.clientType}@${this.clientHost}`;
         | 
| 32 | 
            +
                }
         | 
| 20 33 | 
             
                async request(method, args = {}, retries = 1, timeout = 0) {
         | 
| 21 | 
            -
                    const  | 
| 22 | 
            -
                    const  | 
| 34 | 
            +
                    const msg = `Calling method ${method} with params ${inspect(args, { depth: null, compact: true })}`;
         | 
| 35 | 
            +
                    const message = msg.length > 1000 ? `${msg.slice(0, 1000)}...` : msg;
         | 
| 36 | 
            +
                    logger.verbose({ label: this.label, message });
         | 
| 37 | 
            +
                    const { username, password, href } = extractCredentialsFromUrl(this.url).unwrapOrThrow(new CrossSeedError(`[${this.label}] Transmission rpc url must be percent-encoded`));
         | 
| 23 38 | 
             
                    const headers = new Headers();
         | 
| 24 39 | 
             
                    headers.set("Content-Type", "application/json");
         | 
| 25 40 | 
             
                    if (this.xTransmissionSessionId) {
         | 
| @@ -54,17 +69,17 @@ export default class Transmission { | |
| 54 69 | 
             
                    catch (e) {
         | 
| 55 70 | 
             
                        if (e instanceof SyntaxError) {
         | 
| 56 71 | 
             
                            logger.error({
         | 
| 57 | 
            -
                                label:  | 
| 72 | 
            +
                                label: this.label,
         | 
| 58 73 | 
             
                                message: `Transmission returned non-JSON response`,
         | 
| 59 74 | 
             
                            });
         | 
| 60 75 | 
             
                            logger.debug({
         | 
| 61 | 
            -
                                label:  | 
| 76 | 
            +
                                label: this.label,
         | 
| 62 77 | 
             
                                message: response.clone().text(),
         | 
| 63 78 | 
             
                            });
         | 
| 64 79 | 
             
                        }
         | 
| 65 80 | 
             
                        else {
         | 
| 66 81 | 
             
                            logger.error({
         | 
| 67 | 
            -
                                label:  | 
| 82 | 
            +
                                label: this.label,
         | 
| 68 83 | 
             
                                message: `Transmission responded with an error: ${e.message}`,
         | 
| 69 84 | 
             
                            });
         | 
| 70 85 | 
             
                            logger.debug(e);
         | 
| @@ -78,13 +93,16 @@ export default class Transmission { | |
| 78 93 | 
             
                        await this.request("session-get", {}, 1, ms("10 seconds"));
         | 
| 79 94 | 
             
                    }
         | 
| 80 95 | 
             
                    catch (e) {
         | 
| 81 | 
            -
                         | 
| 82 | 
            -
                        throw new CrossSeedError(`Failed to reach Transmission at ${transmissionRpcUrl}: ${e.message}`);
         | 
| 96 | 
            +
                        throw new CrossSeedError(`[${this.label}] Failed to reach Transmission at ${this.clientHost}: ${e.message}`);
         | 
| 83 97 | 
             
                    }
         | 
| 98 | 
            +
                    logger.info({
         | 
| 99 | 
            +
                        label: this.label,
         | 
| 100 | 
            +
                        message: `Logged in successfully${this.readonly ? " (readonly)" : ""}`,
         | 
| 101 | 
            +
                    });
         | 
| 84 102 | 
             
                    if (!torrentDir)
         | 
| 85 103 | 
             
                        return;
         | 
| 86 104 | 
             
                    if (!readdirSync(torrentDir).some((f) => f.endsWith(".torrent"))) {
         | 
| 87 | 
            -
                        throw new CrossSeedError( | 
| 105 | 
            +
                        throw new CrossSeedError(`[${this.label}] Invalid torrentDir, if no torrents are in client set to null for now: https://www.cross-seed.org/docs/basics/options#torrentdir`);
         | 
| 88 106 | 
             
                    }
         | 
| 89 107 | 
             
                }
         | 
| 90 108 | 
             
                async checkOriginalTorrent(data, onlyCompleted) {
         | 
| @@ -136,13 +154,23 @@ export default class Transmission { | |
| 136 154 | 
             
                    const [{ percentDone }] = queryResponse.torrents;
         | 
| 137 155 | 
             
                    return resultOf(percentDone === 1);
         | 
| 138 156 | 
             
                }
         | 
| 157 | 
            +
                async isTorrentChecking(infoHash) {
         | 
| 158 | 
            +
                    const queryResponse = await this.request("torrent-get", {
         | 
| 159 | 
            +
                        fields: ["status"],
         | 
| 160 | 
            +
                        ids: [infoHash],
         | 
| 161 | 
            +
                    });
         | 
| 162 | 
            +
                    if (queryResponse.torrents.length === 0) {
         | 
| 163 | 
            +
                        return resultOfErr("NOT_FOUND");
         | 
| 164 | 
            +
                    }
         | 
| 165 | 
            +
                    const [{ status }] = queryResponse.torrents;
         | 
| 166 | 
            +
                    return resultOf([1, 2].includes(status));
         | 
| 167 | 
            +
                }
         | 
| 139 168 | 
             
                async getAllTorrents() {
         | 
| 140 169 | 
             
                    const res = await this.request("torrent-get", {
         | 
| 141 170 | 
             
                        fields: ["hashString", "labels"],
         | 
| 142 171 | 
             
                    });
         | 
| 143 172 | 
             
                    return res.torrents.map((torrent) => ({
         | 
| 144 173 | 
             
                        infoHash: torrent.hashString,
         | 
| 145 | 
            -
                        category: "",
         | 
| 146 174 | 
             
                        tags: torrent.labels,
         | 
| 147 175 | 
             
                    }));
         | 
| 148 176 | 
             
                }
         | 
| @@ -166,7 +194,7 @@ export default class Transmission { | |
| 166 194 | 
             
                    }
         | 
| 167 195 | 
             
                    catch (e) {
         | 
| 168 196 | 
             
                        logger.error({
         | 
| 169 | 
            -
                            label:  | 
| 197 | 
            +
                            label: this.label,
         | 
| 170 198 | 
             
                            message: `Failed to get torrents from client: ${e.message}`,
         | 
| 171 199 | 
             
                        });
         | 
| 172 200 | 
             
                        logger.debug(e);
         | 
| @@ -174,7 +202,7 @@ export default class Transmission { | |
| 174 202 | 
             
                    }
         | 
| 175 203 | 
             
                    if (!torrents.length) {
         | 
| 176 204 | 
             
                        logger.error({
         | 
| 177 | 
            -
                            label:  | 
| 205 | 
            +
                            label: this.label,
         | 
| 178 206 | 
             
                            message: "No torrents found in client",
         | 
| 179 207 | 
             
                        });
         | 
| 180 208 | 
             
                        return { searchees, newSearchees };
         | 
| @@ -184,6 +212,7 @@ export default class Transmission { | |
| 184 212 | 
             
                        infoHashes.add(infoHash);
         | 
| 185 213 | 
             
                        const dbTorrent = await memDB("torrent")
         | 
| 186 214 | 
             
                            .where("info_hash", infoHash)
         | 
| 215 | 
            +
                            .where("client_host", this.clientHost)
         | 
| 187 216 | 
             
                            .first();
         | 
| 188 217 | 
             
                        const refresh = options?.refresh === undefined
         | 
| 189 218 | 
             
                            ? false
         | 
| @@ -203,7 +232,7 @@ export default class Transmission { | |
| 203 232 | 
             
                        }));
         | 
| 204 233 | 
             
                        if (!files.length) {
         | 
| 205 234 | 
             
                            logger.verbose({
         | 
| 206 | 
            -
                                label:  | 
| 235 | 
            +
                                label: this.label,
         | 
| 207 236 | 
             
                                message: `No files found for ${torrent.name} [${sanitizeInfoHash(infoHash)}]: skipping`,
         | 
| 208 237 | 
             
                            });
         | 
| 209 238 | 
             
                            continue;
         | 
| @@ -216,7 +245,6 @@ export default class Transmission { | |
| 216 245 | 
             
                        const title = parseTitle(name, files) ?? name;
         | 
| 217 246 | 
             
                        const length = torrent.totalSize;
         | 
| 218 247 | 
             
                        const savePath = torrent.downloadDir;
         | 
| 219 | 
            -
                        const category = "";
         | 
| 220 248 | 
             
                        const tags = torrent.labels;
         | 
| 221 249 | 
             
                        const searchee = {
         | 
| 222 250 | 
             
                            infoHash,
         | 
| @@ -224,15 +252,15 @@ export default class Transmission { | |
| 224 252 | 
             
                            title,
         | 
| 225 253 | 
             
                            files,
         | 
| 226 254 | 
             
                            length,
         | 
| 255 | 
            +
                            clientHost: this.clientHost,
         | 
| 227 256 | 
             
                            savePath,
         | 
| 228 | 
            -
                            category,
         | 
| 229 257 | 
             
                            tags,
         | 
| 230 258 | 
             
                            trackers,
         | 
| 231 259 | 
             
                        };
         | 
| 232 260 | 
             
                        newSearchees.push(searchee);
         | 
| 233 261 | 
             
                        searchees.push(searchee);
         | 
| 234 262 | 
             
                    }
         | 
| 235 | 
            -
                    await updateSearcheeClientDB(newSearchees, infoHashes);
         | 
| 263 | 
            +
                    await updateSearcheeClientDB(this.clientHost, newSearchees, infoHashes);
         | 
| 236 264 | 
             
                    return { searchees, newSearchees };
         | 
| 237 265 | 
             
                }
         | 
| 238 266 | 
             
                async recheckTorrent(infoHash) {
         | 
| @@ -271,20 +299,20 @@ export default class Transmission { | |
| 271 299 | 
             
                        const torrentLog = `${name} [${sanitizeInfoHash(infoHash)}]`;
         | 
| 272 300 | 
             
                        if (status !== 0) {
         | 
| 273 301 | 
             
                            logger.warn({
         | 
| 274 | 
            -
                                label:  | 
| 302 | 
            +
                                label: this.label,
         | 
| 275 303 | 
             
                                message: `Will not resume ${torrentLog}: status is ${status}`,
         | 
| 276 304 | 
             
                            });
         | 
| 277 305 | 
             
                            return;
         | 
| 278 306 | 
             
                        }
         | 
| 279 307 | 
             
                        if (leftUntilDone > maxRemainingBytes) {
         | 
| 280 308 | 
             
                            logger.warn({
         | 
| 281 | 
            -
                                label:  | 
| 309 | 
            +
                                label: this.label,
         | 
| 282 310 | 
             
                                message: `Will not resume ${torrentLog}: ${humanReadableSize(leftUntilDone, { binary: true })} remaining > ${humanReadableSize(maxRemainingBytes, { binary: true })}`,
         | 
| 283 311 | 
             
                            });
         | 
| 284 312 | 
             
                            return;
         | 
| 285 313 | 
             
                        }
         | 
| 286 314 | 
             
                        logger.info({
         | 
| 287 | 
            -
                            label:  | 
| 315 | 
            +
                            label: this.label,
         | 
| 288 316 | 
             
                            message: `Resuming ${torrentLog}: ${humanReadableSize(leftUntilDone, { binary: true })} remaining`,
         | 
| 289 317 | 
             
                        });
         | 
| 290 318 | 
             
                        await this.request("torrent-start", {
         | 
| @@ -293,35 +321,41 @@ export default class Transmission { | |
| 293 321 | 
             
                        return;
         | 
| 294 322 | 
             
                    }
         | 
| 295 323 | 
             
                    logger.warn({
         | 
| 296 | 
            -
                        label:  | 
| 324 | 
            +
                        label: this.label,
         | 
| 297 325 | 
             
                        message: `Will not resume torrent ${infoHash}: timeout`,
         | 
| 298 326 | 
             
                    });
         | 
| 299 327 | 
             
                }
         | 
| 300 | 
            -
                async inject(newTorrent, searchee, decision,  | 
| 301 | 
            -
                    let  | 
| 302 | 
            -
                    if ( | 
| 303 | 
            -
                         | 
| 328 | 
            +
                async inject(newTorrent, searchee, decision, options) {
         | 
| 329 | 
            +
                    let destinationDir;
         | 
| 330 | 
            +
                    if (options.destinationDir) {
         | 
| 331 | 
            +
                        destinationDir = options.destinationDir;
         | 
| 304 332 | 
             
                    }
         | 
| 305 333 | 
             
                    else {
         | 
| 306 | 
            -
                        const result = await this.getDownloadDir(searchee, { onlyCompleted:  | 
| 307 | 
            -
                        if (result. | 
| 308 | 
            -
                             | 
| 334 | 
            +
                        const result = await this.getDownloadDir(searchee, { onlyCompleted: options.onlyCompleted });
         | 
| 335 | 
            +
                        if (result.isOk()) {
         | 
| 336 | 
            +
                            destinationDir = result.unwrap();
         | 
| 309 337 | 
             
                        }
         | 
| 310 338 | 
             
                        else {
         | 
| 311 | 
            -
                             | 
| 339 | 
            +
                            if (result.unwrapErr() === "TORRENT_NOT_COMPLETE") {
         | 
| 340 | 
            +
                                return InjectionResult.TORRENT_NOT_COMPLETE;
         | 
| 341 | 
            +
                            }
         | 
| 342 | 
            +
                            return InjectionResult.FAILURE;
         | 
| 312 343 | 
             
                        }
         | 
| 313 344 | 
             
                    }
         | 
| 314 345 | 
             
                    let addResponse;
         | 
| 315 346 | 
             
                    try {
         | 
| 347 | 
            +
                        const toRecheck = shouldRecheck(searchee, decision);
         | 
| 316 348 | 
             
                        addResponse = await this.request("torrent-add", {
         | 
| 317 | 
            -
                            "download-dir":  | 
| 349 | 
            +
                            "download-dir": destinationDir,
         | 
| 318 350 | 
             
                            metainfo: newTorrent.encode().toString("base64"),
         | 
| 319 | 
            -
                            paused:  | 
| 351 | 
            +
                            paused: toRecheck,
         | 
| 320 352 | 
             
                            labels: [TORRENT_TAG],
         | 
| 321 353 | 
             
                        });
         | 
| 322 | 
            -
                         | 
| 323 | 
            -
                             | 
| 324 | 
            -
             | 
| 354 | 
            +
                        if (toRecheck) {
         | 
| 355 | 
            +
                            this.resumeInjection(newTorrent.infoHash, decision, {
         | 
| 356 | 
            +
                                checkOnce: false,
         | 
| 357 | 
            +
                            });
         | 
| 358 | 
            +
                        }
         | 
| 325 359 | 
             
                    }
         | 
| 326 360 | 
             
                    catch (e) {
         | 
| 327 361 | 
             
                        return InjectionResult.FAILURE;
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"Transmission.js","sourceRoot":"","sources":["../../src/clients/Transmission.ts"],"names":[],"mappings":"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"}
         | 
| 1 | 
            +
            {"version":3,"file":"Transmission.js","sourceRoot":"","sources":["../../src/clients/Transmission.ts"],"names":[],"mappings":"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"}
         | 
    
        package/dist/cmd.js
    CHANGED
    
    | @@ -13,7 +13,6 @@ import { injectSavedTorrents, restoreFromTorrentCache } from "./inject.js"; | |
| 13 13 | 
             
            import { jobsLoop } from "./jobs.js";
         | 
| 14 14 | 
             
            import { bulkSearch, scanRssFeeds } from "./pipeline.js";
         | 
| 15 15 | 
             
            import { sendTestNotification } from "./pushNotifier.js";
         | 
| 16 | 
            -
            import { createSearcheeFromMetafile } from "./searchee.js";
         | 
| 17 16 | 
             
            import { serve } from "./server.js";
         | 
| 18 17 | 
             
            import { withFullRuntime, withMinimalRuntime } from "./startup.js";
         | 
| 19 18 | 
             
            import { indexTorrentsAndDataDirs, parseTorrentFromFilename, } from "./torrent.js";
         | 
| @@ -75,10 +74,13 @@ function createCommandWithSharedOptions(name, description) { | |
| 75 74 | 
             
                    .addOption(new Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
         | 
| 76 75 | 
             
                    .default(fallback(fileConfig.action, Action.SAVE))
         | 
| 77 76 | 
             
                    .choices(Object.values(Action)))
         | 
| 78 | 
            -
                    .option("-- | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
                    .option("-- | 
| 77 | 
            +
                    .option("--torrent-clients <clients...>", "The the client prefix, readonly status, and urls of your torrent clients.", 
         | 
| 78 | 
            +
                // @ts-expect-error commander supports non-string defaults
         | 
| 79 | 
            +
                fallback(fileConfig.torrentClients, []))
         | 
| 80 | 
            +
                    .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface.", fileConfig.rtorrentRpcUrl)
         | 
| 81 | 
            +
                    .option("--qbittorrent-url <url>", "The url of your qBittorrent webui.", fileConfig.qbittorrentUrl)
         | 
| 82 | 
            +
                    .option("--transmission-rpc-url <url>", "The url of your Transmission RPC interface.", fileConfig.transmissionRpcUrl)
         | 
| 83 | 
            +
                    .option("--deluge-rpc-url <url>", "The url of your Deluge JSON-RPC interface.", fileConfig.delugeRpcUrl)
         | 
| 82 84 | 
             
                    .option("--duplicate-categories", "Create and inject using categories with the same save paths as your normal categories", fallback(fileConfig.duplicateCategories, false))
         | 
| 83 85 | 
             
                    .option("--notification-webhook-urls <urls...>", "cross-seed will send POST requests to these urls with a JSON payload of { title, body, extra }", 
         | 
| 84 86 | 
             
                // @ts-expect-error commander supports non-string defaults
         | 
| @@ -104,7 +106,6 @@ program.version(PROGRAM_VERSION, "-V, --version", "output the current version"); | |
| 104 106 | 
             
            program
         | 
| 105 107 | 
             
                .command("gen-config")
         | 
| 106 108 | 
             
                .description("Generate a config file")
         | 
| 107 | 
            -
                .option("-d, --docker", "Generate the docker config instead of the normal one")
         | 
| 108 109 | 
             
                .action(withMinimalRuntime(generateConfig));
         | 
| 109 110 | 
             
            program
         | 
| 110 111 | 
             
                .command("update-torrent-cache-trackers")
         | 
| @@ -125,13 +126,9 @@ program | |
| 125 126 | 
             
                .argument("torrent")
         | 
| 126 127 | 
             
                .action(withMinimalRuntime(async (torrentPath) => {
         | 
| 127 128 | 
             
                console.log("Use `cross-seed diff` to compare two .torrent files");
         | 
| 128 | 
            -
                 | 
| 129 | 
            -
                 | 
| 130 | 
            -
             | 
| 131 | 
            -
                const searchee = res.unwrap();
         | 
| 132 | 
            -
                delete searchee.category;
         | 
| 133 | 
            -
                delete searchee.tags;
         | 
| 134 | 
            -
                console.log(searchee);
         | 
| 129 | 
            +
                // eslint-disable-next-line @typescript-eslint/no-unused-vars
         | 
| 130 | 
            +
                const { category, isSingleFileTorrent, raw, tags, ...meta } = await parseTorrentFromFilename(torrentPath);
         | 
| 131 | 
            +
                console.log(meta);
         | 
| 135 132 | 
             
            }, { migrate: false }));
         | 
| 136 133 | 
             
            program
         | 
| 137 134 | 
             
                .command("clear-indexer-failures")
         | 
    
        package/dist/cmd.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAc,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE, | 
| 1 | 
            +
            {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
         | 
    
        package/dist/config.template.cjs
    CHANGED
    
    | @@ -55,43 +55,31 @@ module.exports = { | |
| 55 55 | 
             
                 */
         | 
| 56 56 | 
             
                port: 2468,
         | 
| 57 57 | 
             
                /**
         | 
| 58 | 
            -
                 * cross-seed will send POST requests to these urls | 
| 59 | 
            -
                 *  | 
| 58 | 
            +
                 * cross-seed will send caronc/apprise POST requests to these urls
         | 
| 59 | 
            +
                 * with a JSON payload of:
         | 
| 60 | 
            +
                 * https://www.cross-seed.org/docs/basics/options#notificationwebhookurls
         | 
| 60 61 | 
             
                 */
         | 
| 61 62 | 
             
                notificationWebhookUrls: [],
         | 
| 62 63 | 
             
                /**
         | 
| 63 | 
            -
                 * The  | 
| 64 | 
            -
                 *  | 
| 65 | 
            -
                 *  | 
| 66 | 
            -
                 */
         | 
| 67 | 
            -
                rtorrentRpcUrl: undefined,
         | 
| 68 | 
            -
                /**
         | 
| 69 | 
            -
                 * The url of your qBittorrent webui.
         | 
| 70 | 
            -
                 * Only relevant with action: "inject".
         | 
| 64 | 
            +
                 * The urls of your torrent clients' web interfaces prefixed by their type.
         | 
| 65 | 
            +
                 * You may need to urlencode your username and password if they contain special characters:
         | 
| 66 | 
            +
                 * https://www.cross-seed.org/docs/basics/faq-troubleshooting#can-i-use-special-characters-in-my-urls
         | 
| 71 67 | 
             
                 *
         | 
| 68 | 
            +
                 * torrentClients: ["qbittorrent:http://username:password@localhost:8080"]
         | 
| 72 69 | 
             
                 * If using Automatic Torrent Management, please read:
         | 
| 73 70 | 
             
                 * https://www.cross-seed.org/docs/v6-migration#new-folder-structure-for-links
         | 
| 74 71 | 
             
                 *
         | 
| 75 | 
            -
                 *  | 
| 76 | 
            -
                 * | 
| 77 | 
            -
                  | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
                 * | 
| 81 | 
            -
                 *  | 
| 82 | 
            -
                 *  | 
| 83 | 
            -
                 *  | 
| 84 | 
            -
                 * "http://username:password@localhost:9091/transmission/rpc"
         | 
| 85 | 
            -
                 */
         | 
| 86 | 
            -
                transmissionRpcUrl: undefined,
         | 
| 87 | 
            -
                /**
         | 
| 88 | 
            -
                 * The url of your Deluge JSON-RPC interface.
         | 
| 89 | 
            -
                 * Usually ends with "/json".
         | 
| 90 | 
            -
                 * Only relevant with action: "inject".
         | 
| 91 | 
            -
                 * Supply your WebUI password as well like so:
         | 
| 92 | 
            -
                 * "http://:password@localhost:8112/json"
         | 
| 72 | 
            +
                 * torrentClients: ["rtorrent:http://username:password@localhost:1234/RPC2"]
         | 
| 73 | 
            +
                 *
         | 
| 74 | 
            +
                 * torrentClients: ["transmission:http://username:password@localhost:9091/transmission/rpc"]
         | 
| 75 | 
            +
                 *
         | 
| 76 | 
            +
                 * torrentClients: ["deluge:http://:password@localhost:8112/json"]
         | 
| 77 | 
            +
                 *
         | 
| 78 | 
            +
                 * You can optionally add readonly: after the prefix to use a client as a
         | 
| 79 | 
            +
                 * source for finding cross seeds, but not for injecting.
         | 
| 80 | 
            +
                 * e.g. "qbittorrent:readonly:http://username:password@localhost:8080"
         | 
| 93 81 | 
             
                 */
         | 
| 94 | 
            -
                 | 
| 82 | 
            +
                torrentClients: [],
         | 
| 95 83 | 
             
                /**
         | 
| 96 84 | 
             
                 * END OF POTENTIALLY SENSITIVE CONFIGURATION OPTIONS
         | 
| 97 85 | 
             
                 */
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,0EAA0E;AAC1E,6BAA6B;AAE7B,MAAM,CAAC,OAAO,GAAG;IAChB;;;;;;;;QAQI;IAEJ;;;;;OAKG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;;OAOG;IACH,OAAO,EAAE,EAAE;IAEX;;;;;;OAMG;IACH,MAAM,EAAE,EAAE;IAEV;;;;;;OAMG;IACH,MAAM,EAAE,EAAE;IAEV;;;;OAIG;IACH,IAAI,EAAE,SAAS;IAEf;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV | 
| 1 | 
            +
            {"version":3,"file":"config.template.cjs","sourceRoot":"","sources":["../src/config.template.cjs"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,0EAA0E;AAC1E,6BAA6B;AAE7B,MAAM,CAAC,OAAO,GAAG;IAChB;;;;;;;;QAQI;IAEJ;;;;;OAKG;IACH,MAAM,EAAE,SAAS;IAEjB;;;;;;;OAOG;IACH,OAAO,EAAE,EAAE;IAEX;;;;;;OAMG;IACH,MAAM,EAAE,EAAE;IAEV;;;;;;OAMG;IACH,MAAM,EAAE,EAAE;IAEV;;;;OAIG;IACH,IAAI,EAAE,SAAS;IAEf;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;;;OAIG;IACH,uBAAuB,EAAE,EAAE;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,EAAE,EAAE;IAElB;;OAEG;IAEH;;;;OAIG;IACH,iBAAiB,EAAE,IAAI;IAEvB;;;;OAIG;IACH,KAAK,EAAE,EAAE;IAET;;;;;;OAMG;IACH,QAAQ,EAAE,EAAE;IAEZ;;;;;;;OAOG;IACH,YAAY,EAAE,iBAAiB;IAE/B;;;;;;OAMG;IACH,QAAQ,EAAE,EAAE;IAEZ;;;;;OAKG;IACH,QAAQ,EAAE,UAAU;IAEpB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,KAAK;IAElB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,UAAU;IAErB;;;OAGG;IACH,WAAW,EAAE,IAAI;IAEjB;;;;OAIG;IACH,qBAAqB,EAAE,QAAQ;IAE/B;;;;;;OAMG;IACH,YAAY,EAAE,CAAC;IAEf;;;;;;OAMG;IACH,UAAU,EAAE,IAAI;IAEhB;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,IAAI;IAEf;;;;;OAKG;IACH,qBAAqB,EAAE,KAAK;IAE5B;;;;;;;;;;;OAWG;IACH,gBAAgB,EAAE,KAAK;IAEvB;;;;;;;OAOG;IACH,kBAAkB,EAAE,CAAC;IAErB;;;;;;OAMG;IACH,kBAAkB,EAAE,IAAI;IAExB;;;OAGG;IAEH;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS;IAEvB;;;;;;;;;OASG;IACH,mBAAmB,EAAE,QAAQ;IAE7B;;;;;OAKG;IACH,MAAM,EAAE,QAAQ;IAEhB;;;;;;;;;;;OAWG;IACH,mBAAmB,EAAE,KAAK;IAE1B;;;;;;;;;;OAUG;IACH,UAAU,EAAE,YAAY;IAExB;;;;;;;;;;OAUG;IACH,aAAa,EAAE,OAAO;IAEtB;;;;;;;OAOG;IACH,aAAa,EAAE,YAAY;IAE3B;;;;;;;OAOG;IACH,aAAa,EAAE,WAAW;IAE1B;;;;;;;;;OASG;IACH,WAAW,EAAE,GAAG;IAEhB;;;OAGG;IACH,SAAS,EAAE,EAAE;CACb,CAAC"}
         |