-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.yml.dist
344 lines (279 loc) · 9.83 KB
/
config.yml.dist
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
host: nerve.insanityradio.com
station_name: Insanity Radio 103.2FM
contact_email: computing@insanityradio.com
mixins:
- Nerve::Mixin::Spotify
search:
# If you change this, it's likely that you'll lose part of dupe checking, as different systems!
# Watch out :) Use musixmatch if you can - it has a good API for metadata and lyrics, and has
# a cool feature called "commontrack", which pretty accurately prevents dupes.
metadata_mode: musixmatch
# NOT IMPLEMNETED but planned for future versions:
# mode: trust means use the user's metadata. Very basic/no duplicate checking is done here.
# mode: spotify uses Spotify's API for metadata. No lyrics, and the explicit checking <100% :(
# mode: custom use your custom code here, idc
lyrics_mode: genius
# NOT IMPLEMENTED but planned for above, too:
# mode: none don't do any lyric checking
# Can be any type of key. Preferably one with lyric access, but it doesn't need to be
musixmatch_key: x
gn_client_id: "x"
gn_client_tag: "x"
metrolyrics_key: x
genius_key: "x"
spotify:
user_id: x
client_id: "x"
client_secret: "x"
words:
# Based on http://stakeholders.ofcom.org.uk/binaries/research/tv-research/offensive-lang.pdf
# Season to taste. :)
banned:
# "Most offensive" language
- f[u\-]ck
- sh[i\-]t
- bullsh[i\-]t
- m[a-z0-9\-]+rf[u\-][c\-]?k
- c[u\-]nt
# "Take care"
- b[i\-]tch
- t[i\-]ts
- screw
- whore
- cock
- bastard
- wank
- slag
- prick
- dick
- shag
- twat
- hoe
- "ho\\b"
- slut
- rape #??
- pussy
- mutha-fu
- mutha fu
- muthafu
- mofuc
- weed
- "\\bL\\s?S\\s?D\\b"
- marijuana
- "gan[gj]a"
- "heroin\\b"
# Discriminatory - take care
- n[i\-]gger
- n[i\-]gga
- negro
- paki
- retard
- spastic
- pikey
- gyppo
- towelhead
- jew
- tranny
- nazi
- chink
- fenian
- faggot
- spakka
- spaz
- gender-bender
- gender bender
- coon
- shank
- mong
- (golly)?wog
- eskimo
- red[ -]indian
- piss
- gash
- bloodclaat #?!
- feck
- "[A-Za-z]+\\*+[A-Za-z]*" # match anything that contains asterisks (like f*ck)
security:
# ::Simple is literally just key=>value in a config file. Don't use it in production.
# Coding a backend for authentication is simple, you just need to implement 3 easy functions.
authentication: Nerve::Authentication::Cortex
oauth:
host: https://sso.cor.insanityradio.com
root: /api/v1/1
authorize: /api/v1/1/oauth/authorize
token: /api/v1/1/oauth/token
id: nerve.insanityradio.com
secret: XXXXXXXXXXXXXXXXXXXXXXX
options:
:ssl:
:ca_file: /srv/insanity/ca.crt
groups:
moderator: 22
admin: 23
specialist: 26
# This is only really needed for master/slave installs. Technically, distribution is pretty
# pointless, but there are some "odd" setups.
allowed_origins:
- "nerve.insanityradio.com"
- "nerve._vpn.insanityradio.com"
- "nerve.local"
- "127.0.0.1:9292"
- "localhost:9292"
keys:
- "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
database:
redis: localhost:6379
mysql2:
host: 127.0.0.1
username: nerve
password: no # you probably want something more secure than that
database: nerve
development:
adapter: mysql2
host: 127.0.0.1
username: nerve
password: no # you probably want something more secure than that
database: nerve
import:
# The minimum bitrate we'll accept. For FM/online radio, try >256. >128 for AM
# Currently set to 240 because of strange errors/bugs/"features" in Sox (metadata?)
bitrate_min: 240
# The minimum sample rate we'll accept. 44,000 is a good starting point.
sample_min: 44000
# Minimum length for a song. Could potentially prevent uploads of unauthorized ads/branding
length_min: 25
# Maximum length for a song in seconds. This is 1 hour :)
length_max: 3600
# From 0/nil (completely off) some crazy high number, this acts as the multiplier for the
# compression ratio. This is as well as LRA, but is only triggered if above its threshold.
# If this is zero, LRA is disabled. TO-DO: clean this up, it's really confusing.
compression_strength: 2.5
# The target LRA (range). Completely related to above. The smaller, the less dynamic range.
# The only real difference is that this also acts as a threshold, and isn't an arbitrary unit.
# 8 is about normal. If you don't care about dynamic range (CHR?), try 4 or something.
#lra: 8
lra: 7
# Also, the normalisation is advanced enough to not make older songs sound really quiet, like
# in Myriad.
# Set to true to automatically generate waveform data as part of the import.
# This requires "audiowaveform" by BBC, so you might want to install/compile before enabling.
# Luckily, most (if not all) of its dependencies are satisfied if you've already got me working
#
# If you built dependencies using the Chef recipe or some pre-built ISO, you're good to go.
generate_waveform: true
preview_format: aac_he_v2
# Leave empty or specify localhost to disable multi-server mode. TO-DO
workers:
- localhost
# Path to sox binary. Comment out to use default
# sox: /usr/local/bin/sox
# TO-DO
#
# Putting any MP3s in here will automatically import them. This is good for migrating/bulks.
# auto_import: /dev/null
auto_import: /srv/auto_import
# Setting this to "true" will bypass moderation on auto import tracks. If you're migrating then
# this is probably the setting that you want. Tracks will still be flagged, unless you disable
# remote metadata for this entirely
auto_import_trust: false
# Path to /tmp. Leave commented to use system default. (note that "" will use /)
#temp: /tmp
# Transport format (i.e. what the server uses for processing uploads before they hit playout)
# Although sox supports anything you throw at it, waveforms are only generated for MP3, WAV,
# and FLAC type files. WAV uses more disk space but is waaaaaay faster
#transport_format: flac
transport_format: wav
export:
# Use AudioWall to export to Myriad. Remember to enable "TCP", and set up Windows Firewall to
# only allow connections from at least the *MASTER* server.
mode:
# - Nerve::Playout::AudioWall::Export
- Nerve::Playout::Myriad5::Export
# The export format. e.g. AudioWall supports WAV and OGG. WAV is recommended for lossless.
format: wav
# Directory to store tracks before they're exported and before their local kill date
# Local kill is basically Nerve's internal cache and won't delete from playout.
# Directory should exist.
directory: /music/export
# mode-specific settings
settings:
#host: ins-stu1-plyt.rhul.ac.uk
#port: 6950
use_extended_path: true
path:
ini: /audiowall/1/Audwall.ini
1: /audiowall/1
1001: /audiowall/1001
2001: /audiowall/2001
3001: /audiowall/3001
4001: /audiowall/4001
5001: /audiowall/5001
6001: /audiowall/6001
7001: /audiowall/7001
8001: /audiowall/8001
9001: /audiowall/9001
10001: /audiowall/10001
20001: /audiowall/20001
30001: /audiowall/30001
40001: /audiowall/40001
50001: /audiowall/50001
60001: /audiowall/60001
70001: /audiowall/70001
80001: /audiowall/80001
90001: /audiowall/90001
database:
#type: mssql
host: 10.32.0.20
port: 49180
database: InsanityRadio
user: myriad
password: no
categories:
held: 0
automation: 6
library: 7
# Set the "genre mapping" to AudioWall ranges
# See 2nd column of affiliate.itunes.apple.com/resources/documentation/genre-mapping/
genre:
# Fill in the "end" space
default: 10000-99999
sweepers: 1000-2000
misc: 106000-110000
mixes: 100000-104999
database:
type: mssql # freetds
host: 10.32.0.20
port: 49180
user: myriad
password: no
name: InsanityRadio
database5:
type: mssql # freetds
host: 10.32.0.222
port: 3308
user: myriad
password: no
name: InsanityRadio
myriad5:
res:
server: 10.32.0.222
username: _Nerve
password: no
database_name: InsanityRadio
station_id: 0
# mode: file
# directory: /srv/export
migrate:
audiowall: /old_audiowall/M4/AudioWall
database: InsanityRadio1032FM
use_extended_path: false
category_id: 8
target_category_id: 5
automation: true
playlists:
# Use InstantCart to populate a user's Myriad account with their uploads.
# It's the only real way to provide a user with "private" playlists in Myriad
# Note that the user provider must satisfy "playout_username" (property or method), regardless
# of whether or not this is enabled. Set to "nil" to disable.
mode: InstantCart
# mode: nil