forked from lewler/bulldozer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.default.yaml
332 lines (279 loc) · 7.97 KB
/
config.default.yaml
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
## Common Settings
# The directory where prepared uploads are stored
output_dir: /home/user/podcasts
# If this is set, files will always be stored here
# instead of the parent dir of the podcast. This is
# mainly useful when generating torrents or reports.
base_dir: null
# The temporary name for a new download
temp_dir_name: temp_download
# Whether to include metadata in the upload
include_metadata: true
# The directory where metadata is stored
metadata_directory: Metadata
# Keep a copy of the metadata json
archive_metadata: false
# The directory to store the archived metadata
archive_metadata_directory: /home/user/podcasts/archive
# Whether to keep the source RSS file, only applies to local files
keep_source_rss: false
# The size you want the resized cover art to be
cover_size: 800
# The announce URL for the tracker
announce_url: https://tracker.com/announce/thisismysecretkey
# Source tag to add to the torrent
tracker_source: null
# The API key to access the tracker
api_key: andthisismyapikey
# The URL to check for duplicates
dupecheck_url: https://tracker.com/api/torrents/filter
# How the RSS feed should be censored. Can be 'delete', 'edit'
rss_censor_mode: delete
## Cache settings
cache:
directory: /home/user/podcasts/cache # The directory to store the cache
hours: 24 # The number of hours to keep the cache
# The cutoff for using mixed labels
cutoff: .7
# If true, uploads of active podcasts will be split on current year
full_years_only: false
## API Settings
# The Podchaser API settings
podchaser:
active: false # Whether to use the Podchaser API
token: null # The Podchaser API token
fields: # The fields to retrieve from the API
- id
- title
- description
- author:
- name
- url
- webUrl
- rssUrl
- language
- status
- numberOfEpisodes
- avgEpisodeLength
- daysBetweenEpisodes
- startDate
- latestEpisodeDate
- ratingAverage
- ratingCount
- applePodcastsId
- spotifyId
- networks:
- id
- title
- url
- categories:
- title
url: https://api.podchaser.com/graphql # The Podchaser API URL
formatters: # The formatters to apply to the data
- property: description # The property to format
method: limit_line_length # The method to apply
settings: # The settings for the method
max_length: 125 # The maximum length of the line
# The Podcast Index API settings
podcastindex:
active: false # Whether to use the Podcast Index API
key: null # The Podcast Index API key
secret: null # The Podcast Index API secret
url: https://api.podcastindex.org/api/1.0/search/byterm?q= # The Podcast Index API URL
## Scraper settings
# Podnews settings
podnews:
active: false # Whether to use the Podnews scraper
url: https://podnews.net/search?q= # The Podnews Search URL
## podcast-dl Settings
podcast_dl:
episode_template: '{{podcast_title}} - {{release_year}}-{{release_month}}-{{release_day}} {{title}}' # The template for the episode name
threads: 4 # Number of threads to use for downloading
## Various settings
# The script will ask if you want to delete files matching these strings
unwanted_files:
- What to Listen to Next
- More from
- Introducing
- New from
- Presents
- Preview
- Replay
- Rebroadcast
- Re-run
- Re-release
- Presenting
# The premium networks to check for
premium_networks:
- text: Wondery+
tag: title
name: Wondery+
- text: W+
tag: title
name: Wondery+
- text: patreon.com
tag: link
name: Patreon
# Indicators that an episode is a trailer (affects episode numbering)
trailer_patterns:
- trailer
- preview
- introducing
# Decides if the premium tag should be included in the name
include_premium_tag: true
# The number of days to wait before a podcast is considered complete
completed_threshold_days: 365
# The replacements to make in the folder and file names
file_replacements:
- pattern: 'Wondery\+ Edition'
replacement: ''
flags:
- IGNORECASE
- pattern: 'Wondery\+'
replacement: ''
flags:
- IGNORECASE
- pattern: 'W\+'
replacement: ''
flags:
- IGNORECASE
- pattern: 'Premium'
replacement: ''
flags:
- IGNORECASE
- pattern: '_'
replacement: ' -'
- pattern: '\s*-\s*\.'
replacement: '.'
- pattern: '\s{2,}'
replacement: ' '
- pattern: '\s+\.(\w+)$'
replacement: '.\1'
- pattern: '(?<!\d)(-)(?!\d)(\w)'
replacement: '\1 \2'
- pattern: '-\s+-'
replacement: '-'
repeat_until_no_change: true
- pattern: '\s+(?=\.)'
replacement: ''
# The replacements to make in the file level metadata fields
file_metadata_replacements:
- fields: ['album', 'title']
pattern: '\s*\(.*?John Doe.*?\)'
replacement: ''
flags:
- IGNORECASE
# The replacements to make in the description
description_replacements:
- pattern: '<br>'
replace_with: '\n'
- pattern: '<p>'
replace_with: '\n'
- pattern: '</p>'
replace_with: '\n'
- pattern: ' '
replace_with: ' '
- pattern: '<em>'
replace_with: '[i]'
- pattern: '</em>'
replace_with: '[/i]'
# The replacements to make in the title
title_replacements:
- pattern: 'Wondery\+ Edition'
replacement: ''
flags:
- IGNORECASE
- pattern: 'Wondery\+'
replacement: ''
flags:
- IGNORECASE
- pattern: 'W\+'
replacement: ''
flags:
- IGNORECASE
- pattern: 'Premium'
replacement: ''
flags:
- IGNORECASE
- pattern: '[^\w\s-]'
replacement: ''
- pattern: '\s*-\s*$'
replacement: ''
# Used when splitting the title to add episode numbers
title_split_pattern: '- (?=[^-]*$)'
# Used when checking previous word for titlecase
pattern_previous_word: '\b(\d+\.)|\b\d+\b|-|\b\w+_?'
## Date formats
# Short date format
date_format_short: '%Y-%m-%d'
# Long date format
date_format_long: '%B %d %Y'
## Patterns
# The pattern to match the episode file
ep_nr_at_end_file_pattern: '^(.* - )(\d{4}-\d{2}-\d{2}) (.*?)( - )((Ep\.?|Episode|E)?\s*(\d+))(\.\w+)$'
# The pattern to match the episode file with a number
numbered_episode_pattern: '^(.* - )(\d{4}-\d{2}-\d{2}) (\d+)\. (.*)(\.\w+)'
# The pattern to match the episode file without a number
unnumbered_episode_pattern: '^(.*) - )(\d{4}-\d{2}-\d{2}) (.*)(\.\w+)'
# When renaming files, anything matching these patterns will be uppercase
force_uppercase:
- '^S\d+E\d+$'
- '^E\d+$'
# When renaming files, anything matching these patterns will be title case
force_titlecase:
- '^A$'
- '^An$'
- '^As$'
- '^At$'
- '^In$'
- '^The$'
- '^To$'
# When renaming files, anything matching these patterns will be left untouched
skip_capitalization:
- '\.meta'
- '\.image'
# These patterns will be removed from the RSS feed
censor_rss_patterns:
- pattern: 'token-[^&"\s]+'
replacement: ''
flags:
- IGNORECASE
- pattern: '\d+/patreon-media/p/post/\d+/\w+/\w+%3D%3D/'
replacement: ''
flags:
- IGNORECASE
- pattern: '\/([^\/?]+\.mp3)'
replacement: '/obfuscated.mp3'
flags:
- IGNORECASE
# The pattern to match the episode number
episode_pattern: '(Ep\.?|Episode|E|Part)(\s*)(\d+)'
# the pattern to match date strings
date_pattern: '\b(\d{4}-\d{2}-\d{2})\b'
# How to prefix the episode number if dates are conflicting
conflicing_dates_replacement: '{prefix} - {date} Ep. {episode} - {suffix}'
# Gets a clean name from the folder name
clean_name: '^(.*?)(?=\()'
## Templates
# The template for the name to use in the report
name_template_file: name
# The template for the links themselves
link_template: "[url={{ link }}]{{ text }}[/url]"
# The template for the links section
links_section_template: |
[b]Links[/b]
{{ links }}
# The template for the report
template_file: default
## Database settings
# The database file to use
database:
active: true # Whether to use the database
file: ./podcasts.db # The database file
## Logging settings
# The log level for the application
log_level: WARNING
# The maximum size of the log file in MB
logfile_size_mb: 1
# The number of log files to keep
logfile_count: 5