cross-seed 6.13.6 → 7.0.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -13
- package/dist/webui/assets/FieldInfo-Bxj_j8SJ.js +1 -0
- package/dist/webui/assets/Page-C3rteCZt.js +1 -0
- package/dist/webui/assets/array-field-DVSC6nHP.js +1 -0
- package/dist/webui/assets/badge-DTZMtS0e.js +1 -0
- package/dist/webui/assets/check-Bu3ldi63.js +1 -0
- package/dist/webui/assets/chevron-down-CRy8M0kJ.js +1 -0
- package/dist/webui/assets/clients-CW8oEZoQ.js +1 -0
- package/dist/webui/assets/connect-YBNsnjWT.js +1 -0
- package/dist/webui/assets/debug-mz8-WYZj.js +1 -0
- package/dist/webui/assets/directories-BSK28RgR.js +1 -0
- package/dist/webui/assets/duration-field-C6xoSlJg.js +1 -0
- package/dist/webui/assets/general-lJJxZhH7.js +1 -0
- package/dist/webui/assets/health-CXbsVrie.js +1 -0
- package/dist/webui/assets/index-Bi48hI2z.js +54 -0
- package/dist/webui/assets/index-C-Ul7GNg.css +1 -0
- package/dist/webui/assets/index-C2cH1Gst.js +1 -0
- package/dist/webui/assets/index-Cc5bDmJr.js +1 -0
- package/dist/webui/assets/jobs-CxmNab9w.js +1 -0
- package/dist/webui/assets/library-vaj2W8sE.js +1 -0
- package/dist/webui/assets/loader-circle-M0gu1gZ-.js +1 -0
- package/dist/webui/assets/logs-Cu9RyKS0.js +1 -0
- package/dist/webui/assets/search-2R5sIdT8.js +1 -0
- package/dist/webui/assets/select-field-BCqNLDrJ.js +1 -0
- package/dist/webui/assets/select-zHgqMzLj.js +1 -0
- package/dist/webui/assets/settings-CMYjpTbZ.js +1 -0
- package/dist/webui/assets/submit-button-BtcnyggQ.js +1 -0
- package/dist/webui/assets/switch-G0W3uJVN.js +1 -0
- package/dist/webui/assets/switch-field-IBd9ORNq.js +1 -0
- package/dist/webui/assets/table-DvgJU7Gh.js +1 -0
- package/dist/webui/assets/test-tube-BIwmoM45.js +1 -0
- package/dist/webui/assets/text-field-DruSbGhy.js +1 -0
- package/dist/webui/assets/time-BSMZjmyW.js +1 -0
- package/dist/webui/assets/trackers-D-OpAe63.js +7 -0
- package/dist/webui/assets/use-form-validation-context-BkAfWAh0.js +1 -0
- package/dist/webui/assets/use-settings-form-submit-CDRh-E9U.js +2 -0
- package/dist/webui/assets/useQuery-A4Hv_4uX.js +1 -0
- package/dist/webui/index.html +13 -0
- package/node_modules/@cross-seed/shared/dist/configSchema.d.ts +261 -0
- package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -0
- package/node_modules/@cross-seed/shared/dist/configSchema.js +53 -0
- package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -0
- package/node_modules/@cross-seed/shared/dist/constants.d.ts +122 -0
- package/node_modules/@cross-seed/shared/dist/constants.d.ts.map +1 -0
- package/node_modules/@cross-seed/shared/dist/constants.js +127 -0
- package/node_modules/@cross-seed/shared/dist/constants.js.map +1 -0
- package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@cross-seed/shared/dist/utils.d.ts +6 -0
- package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -0
- package/node_modules/@cross-seed/shared/dist/utils.js +9 -0
- package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -0
- package/node_modules/@cross-seed/shared/package.json +22 -0
- package/package.json +35 -11
- package/dist/Result.js +0 -64
- package/dist/Result.js.map +0 -1
- package/dist/action.js +0 -693
- package/dist/action.js.map +0 -1
- package/dist/arr.js +0 -199
- package/dist/arr.js.map +0 -1
- package/dist/auth.js +0 -25
- package/dist/auth.js.map +0 -1
- package/dist/clients/Deluge.js +0 -698
- package/dist/clients/Deluge.js.map +0 -1
- package/dist/clients/QBittorrent.js +0 -785
- package/dist/clients/QBittorrent.js.map +0 -1
- package/dist/clients/RTorrent.js +0 -654
- package/dist/clients/RTorrent.js.map +0 -1
- package/dist/clients/TorrentClient.js +0 -272
- package/dist/clients/TorrentClient.js.map +0 -1
- package/dist/clients/Transmission.js +0 -404
- package/dist/clients/Transmission.js.map +0 -1
- package/dist/cmd.js +0 -196
- package/dist/cmd.js.map +0 -1
- package/dist/config.template.cjs +0 -353
- package/dist/config.template.cjs.map +0 -1
- package/dist/configSchema.js +0 -667
- package/dist/configSchema.js.map +0 -1
- package/dist/configuration.js +0 -82
- package/dist/configuration.js.map +0 -1
- package/dist/constants.js +0 -281
- package/dist/constants.js.map +0 -1
- package/dist/dataFiles.js +0 -208
- package/dist/dataFiles.js.map +0 -1
- package/dist/db.js +0 -216
- package/dist/db.js.map +0 -1
- package/dist/decide.js +0 -553
- package/dist/decide.js.map +0 -1
- package/dist/diff.js +0 -24
- package/dist/diff.js.map +0 -1
- package/dist/errors.js +0 -16
- package/dist/errors.js.map +0 -1
- package/dist/indexers.js +0 -180
- package/dist/indexers.js.map +0 -1
- package/dist/inject.js +0 -594
- package/dist/inject.js.map +0 -1
- package/dist/jobs.js +0 -146
- package/dist/jobs.js.map +0 -1
- package/dist/logger.js +0 -143
- package/dist/logger.js.map +0 -1
- package/dist/migrations/00-initialSchema.js +0 -30
- package/dist/migrations/00-initialSchema.js.map +0 -1
- package/dist/migrations/01-jobs.js +0 -12
- package/dist/migrations/01-jobs.js.map +0 -1
- package/dist/migrations/02-timestamps.js +0 -21
- package/dist/migrations/02-timestamps.js.map +0 -1
- package/dist/migrations/03-rateLimits.js +0 -14
- package/dist/migrations/03-rateLimits.js.map +0 -1
- package/dist/migrations/04-auth.js +0 -13
- package/dist/migrations/04-auth.js.map +0 -1
- package/dist/migrations/05-caps.js +0 -16
- package/dist/migrations/05-caps.js.map +0 -1
- package/dist/migrations/06-uniqueDecisions.js +0 -29
- package/dist/migrations/06-uniqueDecisions.js.map +0 -1
- package/dist/migrations/07-limits.js +0 -12
- package/dist/migrations/07-limits.js.map +0 -1
- package/dist/migrations/08-rss.js +0 -15
- package/dist/migrations/08-rss.js.map +0 -1
- package/dist/migrations/09-clientAndDataSearchees.js +0 -34
- package/dist/migrations/09-clientAndDataSearchees.js.map +0 -1
- package/dist/migrations/10-indexerNameAudioBookCaps.js +0 -18
- package/dist/migrations/10-indexerNameAudioBookCaps.js.map +0 -1
- package/dist/migrations/11-trackers.js +0 -38
- package/dist/migrations/11-trackers.js.map +0 -1
- package/dist/migrations/migrations.js +0 -31
- package/dist/migrations/migrations.js.map +0 -1
- package/dist/parseTorrent.js +0 -128
- package/dist/parseTorrent.js.map +0 -1
- package/dist/pipeline.js +0 -527
- package/dist/pipeline.js.map +0 -1
- package/dist/preFilter.js +0 -250
- package/dist/preFilter.js.map +0 -1
- package/dist/pushNotifier.js +0 -137
- package/dist/pushNotifier.js.map +0 -1
- package/dist/runtimeConfig.js +0 -11
- package/dist/runtimeConfig.js.map +0 -1
- package/dist/searchee.js +0 -658
- package/dist/searchee.js.map +0 -1
- package/dist/server.js +0 -456
- package/dist/server.js.map +0 -1
- package/dist/startup.js +0 -203
- package/dist/startup.js.map +0 -1
- package/dist/torrent.js +0 -637
- package/dist/torrent.js.map +0 -1
- package/dist/torznab.js +0 -786
- package/dist/torznab.js.map +0 -1
- package/dist/utils.js +0 -637
- package/dist/utils.js.map +0 -1
package/dist/indexers.js
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { db } from "./db.js";
|
|
2
|
-
import { Label, logger } from "./logger.js";
|
|
3
|
-
import { humanReadableDate } from "./utils.js";
|
|
4
|
-
export var IndexerStatus;
|
|
5
|
-
(function (IndexerStatus) {
|
|
6
|
-
/**
|
|
7
|
-
* equivalent to null
|
|
8
|
-
*/
|
|
9
|
-
IndexerStatus["OK"] = "OK";
|
|
10
|
-
IndexerStatus["RATE_LIMITED"] = "RATE_LIMITED";
|
|
11
|
-
IndexerStatus["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
12
|
-
})(IndexerStatus || (IndexerStatus = {}));
|
|
13
|
-
const allFields = {
|
|
14
|
-
id: "id",
|
|
15
|
-
url: "url",
|
|
16
|
-
name: "name",
|
|
17
|
-
apikey: "apikey",
|
|
18
|
-
trackers: "trackers",
|
|
19
|
-
active: "active",
|
|
20
|
-
status: "status",
|
|
21
|
-
retryAfter: "retry_after",
|
|
22
|
-
searchCap: "search_cap",
|
|
23
|
-
tvSearchCap: "tv_search_cap",
|
|
24
|
-
movieSearchCap: "movie_search_cap",
|
|
25
|
-
musicSearchCap: "music_search_cap",
|
|
26
|
-
audioSearchCap: "audio_search_cap",
|
|
27
|
-
bookSearchCap: "book_search_cap",
|
|
28
|
-
tvIdCaps: "tv_id_caps",
|
|
29
|
-
movieIdCaps: "movie_id_caps",
|
|
30
|
-
catCaps: "cat_caps",
|
|
31
|
-
limitsCaps: "limits_caps",
|
|
32
|
-
};
|
|
33
|
-
export const ALL_CAPS = {
|
|
34
|
-
limits: {
|
|
35
|
-
default: 100,
|
|
36
|
-
max: 100,
|
|
37
|
-
},
|
|
38
|
-
search: true,
|
|
39
|
-
categories: {
|
|
40
|
-
tv: true,
|
|
41
|
-
movie: true,
|
|
42
|
-
anime: true,
|
|
43
|
-
xxx: true,
|
|
44
|
-
audio: true,
|
|
45
|
-
book: true,
|
|
46
|
-
additional: true,
|
|
47
|
-
},
|
|
48
|
-
tvSearch: true,
|
|
49
|
-
movieSearch: true,
|
|
50
|
-
musicSearch: true,
|
|
51
|
-
audioSearch: true,
|
|
52
|
-
bookSearch: true,
|
|
53
|
-
movieIdSearch: {
|
|
54
|
-
tvdbId: true,
|
|
55
|
-
tmdbId: true,
|
|
56
|
-
imdbId: true,
|
|
57
|
-
tvMazeId: true,
|
|
58
|
-
},
|
|
59
|
-
tvIdSearch: {
|
|
60
|
-
tvdbId: true,
|
|
61
|
-
tmdbId: true,
|
|
62
|
-
imdbId: true,
|
|
63
|
-
tvMazeId: true,
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
function deserialize(dbIndexer) {
|
|
67
|
-
const { trackers, tvIdCaps, movieIdCaps, catCaps, limitsCaps, ...rest } = dbIndexer;
|
|
68
|
-
return {
|
|
69
|
-
...rest,
|
|
70
|
-
trackers: JSON.parse(trackers ?? "null"),
|
|
71
|
-
tvIdCaps: JSON.parse(tvIdCaps ?? "null"),
|
|
72
|
-
movieIdCaps: JSON.parse(movieIdCaps ?? "null"),
|
|
73
|
-
categories: JSON.parse(catCaps ?? "null"),
|
|
74
|
-
limits: JSON.parse(limitsCaps ?? "null"),
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* All indexers in the database, regardless of whether they are currently configured or working.
|
|
79
|
-
*/
|
|
80
|
-
export async function getAllIndexers() {
|
|
81
|
-
return (await db("indexer").select(allFields)).map(deserialize);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* All indexers that users currently have configured regardless of whether they are working.
|
|
85
|
-
*/
|
|
86
|
-
export async function getActiveIndexers() {
|
|
87
|
-
return (await db("indexer").where({ active: true }).select(allFields)).map(deserialize);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Indexers that are currently working.
|
|
91
|
-
*/
|
|
92
|
-
export async function getEnabledIndexers() {
|
|
93
|
-
return (await db("indexer")
|
|
94
|
-
.whereNot({
|
|
95
|
-
search_cap: null,
|
|
96
|
-
tv_search_cap: null,
|
|
97
|
-
movie_search_cap: null,
|
|
98
|
-
music_search_cap: null,
|
|
99
|
-
audio_search_cap: null,
|
|
100
|
-
book_search_cap: null,
|
|
101
|
-
tv_id_caps: null,
|
|
102
|
-
movie_id_caps: null,
|
|
103
|
-
cat_caps: null,
|
|
104
|
-
limits_caps: null,
|
|
105
|
-
})
|
|
106
|
-
.where({ active: true, search_cap: true })
|
|
107
|
-
.where((i) => i
|
|
108
|
-
.where({ status: null })
|
|
109
|
-
.orWhere({ status: IndexerStatus.OK })
|
|
110
|
-
.orWhere("retry_after", "<", Date.now()))
|
|
111
|
-
.select(allFields)).map(deserialize);
|
|
112
|
-
}
|
|
113
|
-
export async function updateIndexerStatus(status, retryAfter, indexerIds, indexerNames) {
|
|
114
|
-
if (indexerIds.length > 0) {
|
|
115
|
-
logger.verbose({
|
|
116
|
-
label: Label.TORZNAB,
|
|
117
|
-
message: `Snoozing indexers [${Array.from(indexerNames).join(", ")}] with ${status} until ${humanReadableDate(retryAfter)}`,
|
|
118
|
-
});
|
|
119
|
-
await db("indexer").whereIn("id", indexerIds).update({
|
|
120
|
-
retry_after: retryAfter,
|
|
121
|
-
status,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
export async function updateSearchTimestamps(name, indexerIds) {
|
|
126
|
-
for (const indexerId of indexerIds) {
|
|
127
|
-
await db.transaction(async (trx) => {
|
|
128
|
-
const now = Date.now();
|
|
129
|
-
const { id: searchee_id } = await trx("searchee")
|
|
130
|
-
.where({ name })
|
|
131
|
-
.select("id")
|
|
132
|
-
.first();
|
|
133
|
-
await trx("timestamp")
|
|
134
|
-
.insert({
|
|
135
|
-
searchee_id,
|
|
136
|
-
indexer_id: indexerId,
|
|
137
|
-
last_searched: now,
|
|
138
|
-
first_searched: now,
|
|
139
|
-
})
|
|
140
|
-
.onConflict(["searchee_id", "indexer_id"])
|
|
141
|
-
.merge(["searchee_id", "indexer_id", "last_searched"]);
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
export async function updateIndexerCapsById(indexerId, caps) {
|
|
146
|
-
await db("indexer")
|
|
147
|
-
.where({ id: indexerId })
|
|
148
|
-
.update({
|
|
149
|
-
search_cap: caps.search,
|
|
150
|
-
tv_search_cap: caps.tvSearch,
|
|
151
|
-
movie_search_cap: caps.movieSearch,
|
|
152
|
-
music_search_cap: caps.musicSearch,
|
|
153
|
-
audio_search_cap: caps.audioSearch,
|
|
154
|
-
book_search_cap: caps.bookSearch,
|
|
155
|
-
movie_id_caps: JSON.stringify(caps.movieIdSearch),
|
|
156
|
-
tv_id_caps: JSON.stringify(caps.tvIdSearch),
|
|
157
|
-
cat_caps: JSON.stringify(caps.categories),
|
|
158
|
-
limits_caps: JSON.stringify(caps.limits),
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
export async function clearIndexerFailures() {
|
|
162
|
-
await db("indexer").update({
|
|
163
|
-
status: null,
|
|
164
|
-
retry_after: null,
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
export async function getHostToNameMap() {
|
|
168
|
-
const hostToName = new Map();
|
|
169
|
-
for (const indexer of await getAllIndexers()) {
|
|
170
|
-
if (!indexer.name || !indexer.trackers)
|
|
171
|
-
continue;
|
|
172
|
-
for (const trackerHost of indexer.trackers) {
|
|
173
|
-
if (hostToName.has(trackerHost))
|
|
174
|
-
continue;
|
|
175
|
-
hostToName.set(trackerHost, indexer.name);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return hostToName;
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=indexers.js.map
|
package/dist/indexers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexers.js","sourceRoot":"","sources":["../src/indexers.ts"],"names":[],"mappings":"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"}
|