/
config.template.cjs
359 lines (321 loc) · 9.98 KB
/
config.template.cjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
// If you find yourself always using the same command-line flag, you can set it
// here as a default.
module.exports = {
/**
* WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
*
* THE NEXT 8 OPTIONS CONTAIN POTENTIALLY SENSITIVE INFORMATION
* THERE IS A NOTE WHERE YOU WILL WANT TO START COPYING FROM
* IF YOU ARE TRYING TO SHARE YOUR CONFIGURATION SETTINGS!
*
* WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
**/
/**
* Provide your own API key here to override the autogenerated one.
* Not recommended - prefer using the autogenerated API key via
* `cross-seed api-key`.
* Must be 24+ characters.
*/
apiKey: undefined,
/**
* List of Torznab URLs.
* For Jackett, click "Copy RSS feed".
* For Prowlarr, click on the indexer name and copy the Torznab Url, then
* append "?apikey=YOUR_PROWLARR_API_KEY". Wrap each URL in quotation marks
* and separate them with commas, and surround the entire set in brackets.
*/
torznab: [],
/**
* Bind to a specific host address.
* Example: "127.0.0.1"
* Default is "0.0.0.0"
*/
host: undefined,
/**
* The port you wish to listen on for daemon mode.
*/
port: 2468,
/**
* cross-seed will send POST requests to this url with a JSON payload of
* { title, body }. Conforms to the caronc/apprise REST API.
*/
notificationWebhookUrl: undefined,
/**
* The url of your rtorrent XMLRPC interface.
* Only relevant with action: "inject".
* Could be something like "http://username:password@localhost:1234/RPC2
*/
rtorrentRpcUrl: undefined,
/**
* The url of your qBittorrent webui.
* Only relevant with action: "inject".
* Supply your username and password inside the url like so:
* "http://username:password@localhost:8080"
*/
qbittorrentUrl: undefined,
/**
* The url of your Transmission RPC interface.
* Usually ends with "/transmission/rpc".
* Only relevant with action: "inject".
* Supply your username and password inside the url like so:
* "http://username:password@localhost:9091/transmission/rpc"
*/
transmissionRpcUrl: undefined,
/**
* The url of your Deluge JSON-RPC interface.
* Usually ends with "/json".
* Only relevant with action: "inject".
* Supply your WebUI password as well like so:
* "http://:password@localhost:8112/json"
*/
delugeRpcUrl: undefined,
/**
* END OF POTENTIALLY SENSITIVE CONFIGURATION OPTIONS
*/
/**
* Pause at least this many seconds in between each search. Higher is safer
* for you and friendlier for trackers.
* Minimum value of 10.
*/
delay: 30,
/**
* To search with already downloaded data, you can enter in the directories
* to your downloaded torrent data to find matches, rather than relying
* entirely on the .torrent files themselves for matching.
*
* If directories are entered, they must all be on the one line and they
* need to be surrounded by brackets.
* Windows users will need to use double backslash in all paths in this
* config.
*
* example:
* dataDirs: ["/downloads/movies", "/downloads/packs"],
* or for windows users
* dataDirs: ["C:\\My Data\\Downloads\\Movies"],
*/
dataDirs: [],
/**
* Defines what qBittorrent or Deluge category to set on linked torrents
* Default is "cross-seed-link".
*
* qBittorrent: If you have linking enabled, all torrents will be injected
* to this category.
*
* Default is "cross-seed-data".
*/
linkCategory: "cross-seed-link",
/**
* If this is specified, cross-seed will create links to matched files in
* the specified directory.
* It will create a different link for every changed file name or directory
* structure.
*
* Unlike dataDirs, this is just a quoted string WITHOUT []'s around it.
*
* If you are a Windows user you need to put double '\' (e.g. "C:\\links")
*
* IF YOU ARE USING HARDLINKS, THIS MUST BE UNDER THE SAME VOLUME AS YOUR
* DATADIRS. THIS PATH MUST ALSO BE ACCESSIBLE VIA YOUR TORRENT CLIENT
* USING THE SAME PATH.
*/
linkDir: undefined,
/**
* cross-seed will use links of this type to inject data-based matches into
* your client.
* https://www.cross-seed.org/docs/basics/faq-troubleshooting#what-linktype-should-i-use
* Options: "symlink", "hardlink".
*/
linkType: "hardlink",
/**
* Enabling this will link files using v5's flat folder style.
*
* Each individual Torznab tracker's cross-seeds, otherwise, will have it's
* own folder with the tracker's name and it's links within it.
*
* qBittorent: If you are using qBittorrent with Auto Torrent Management in any capacity
* it is recommended to enable this to avoid issues.
*
* Default: false.
*/
flatLinking: false,
/**
* Determines flexibility of naming during matching.
* "safe" will allow only perfect name/size matches using the standard
* matching algorithm.
* "risky" uses filesize as its only comparison point.
* "partial" is like risky but allows matches if they are missing small
* files like .nfo/.srt.
* Options: "safe", "risky", "partial".
*/
matchMode: "safe",
/**
* Determines how deep into the specified dataDirs to go to generate new
* searchees. Setting this to higher values will result in more searchees
* and more API hits to your indexers.
*/
maxDataDepth: 1,
/**
* Directory containing .torrent files.
* For qBittorrent, this is BT_Backup.
* For rtorrent, this is your session directory as configured in your
* .rtorrent.rc file.
* For Deluge, this is ~/.config/deluge/state.
* For Transmission, this would be ~/.config/transmission/torrents.
*
* If you are a Windows user you need to put double '\' (e.g. "C:\\torrents")
*/
torrentDir: "/path/to/torrent/file/dir",
/**
* Where to save the torrent files that cross-seed finds for you.
*
* If you are a Windows user you need to put double '\' (e.g. "C:\\output")
*/
outputDir: ".",
/**
* Whether to search for all episode torrents, including those from season
* packs.
* This option overrides includeSingleEpisodes when set to true.
*/
includeEpisodes: false,
/**
* Whether to include single episode torrents in the search (not those from
* season packs).
* Like `includeEpisodes` but slightly more restrictive.
*/
includeSingleEpisodes: false,
/**
* Include torrents which contain non-video files.
* This option does not override includeEpisodes or includeSingleEpisodes.
*
* If this option is set to false, any folders or torrents containing ANY
* non-video files will automatically be excluded from cross-seed searches.
*
* For example, if you have .srt or .nfo files inside your folders/torrents
* you would set this as true.
* For full disc based folders (not .ISO) you may wish to set this as true.
* You may also want to set this as false to exclude things like music,
* games, or books.
*
* To search for everything except episodes, use:
*
* includeEpisodes: false
* includeSingleEpisodes: false
* includeNonVideos: true
*
* To search for everything including episodes, use:
*
* includeEpisodes: true
* includeNonVideos: true
*
* To search for everything except season pack episodes (data-based) use:
*
* includeEpisodes: false
* includeSingleEpisodes: true
* includeNonVideos: true
*
*/
includeNonVideos: false,
/**
* You should NOT modify this unless you have good reason.
* The following option is the preliminary value to compare sizes of
* releases for further comparison.
*
* decimal value (0.02 = 2%)
*/
fuzzySizeThreshold: 0.02,
/**
* Time based options below use the following format:
* https://github.com/vercel/ms
*/
/**
* Exclude torrents first seen by cross-seed more than this long ago.
* Examples:
* "10 minutes"
* "1 day"
* "0" - this will search everything exactly once, never more.
*/
excludeOlder: "2 weeks",
/**
* Exclude torrents which have been searched more recently than this long
* ago.
* Doesn't exclude previously failed searches.
* Examples:
* "2 days"
* "1 year"
*/
excludeRecentSearch: "3 days",
/**
* What action to take upon a match being found.
* Options: "save", "inject".
*/
action: "inject",
/**
* qBittorrent and Deluge specific.
* Whether to inject using the same labels/categories as the original
* torrent.
*
* qBittorrent: This will apply the category's original category as a tag.
*
* Example: if you have a original label/category called "Movies", this will
* automatically inject cross-seeds to "Movies.cross-seed".
*/
duplicateCategories: false,
/**
* Run rss scans on a schedule.
* Set to undefined or null to disable. Minimum of 10 minutes.
* Examples:
* "10 minutes"
* "1 hour"
*/
rssCadence: "30 minutes",
/**
* Run searches on a schedule.
* Set to undefined or null to disable. Minimum of 1 day.
* Examples:
* "2 weeks"
* "3 days"
*/
searchCadence: "1 day",
/**
* Fail snatch requests that haven't responded after this long.
* Set to null for an infinite timeout.
* Examples:
* "30 seconds"
* null
*/
snatchTimeout: undefined,
/**
* Fail search requests that haven't responded after this long.
* Set to null for an infinite timeout.
* Examples:
* "30 seconds"
* null
*/
searchTimeout: undefined,
/**
* The number of searches to make in one run/batch.
* If more than this many searches are queued,
* "searchCadence" will determine how long until the next batch.
*
* Combine this with "excludeRecentSearch" and "searchCadence" to smooth
* long-term API usage patterns.
*
* Set to null for no limit.
*/
searchLimit: 100,
/**
* The list of infohashes or strings which are contained in torrents that
* you want to be excluded from cross-seed. This is the same format as
* torznab, surround the entire set of quoted strings in square brackets
* You can use any combination which must be entered on the one line.
* Leave as undefined to disable.
*
* examples:
*
* blockList: ["-excludedGroup", "-excludedGroup2"],
* blocklist: ["x265"],
* blocklist: ["Release.Name"],
* blocklist: ["3317e6485454354751555555366a8308c1e92093"],
*/
blockList: undefined,
};