-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathterminus-bot.conf.dist
748 lines (569 loc) · 20.8 KB
/
terminus-bot.conf.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
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
# syntax:
#
# block_name = {
# setting_name = value
# }
#
# Lines beginning with # are comments.
#
# Comments cannot be started later in the line
# (you may not do "setting = value #comment").
#
# Boolean settings must be true or false (exactly).
#
# If a default is listed, that is the value that is used if the setting is not
# present (commented out or deleted).
#
# Leading and trailing spaces are removed from all lines.
#
# Do not wrap settings in quotation marks unless you want the quotation marks
# to be part of the value itself.
#
# All settings outside the core section are optional unless otherwise
# specified. Script authors are encouraged to make all config values have
# sane defaults so that nothing _really_ needs to be added here.
# Core bot configuration. If this section and the require settings inside
# aren't here, the bot may somehow erase your hard drive and kick your dog.
# Read and pay attention!
core = {
# OPTIONAL, RECOMMENDED
# The bot's IRC nick. If the nick is taken, the bot will attempt to use the
# altnick setting below, and then try adding underscores at the end of the
# nick.
# default: Terminus-Bot
nick = Terminus-Bot
# OPTIONAL
# The bot's user name (ident). This is what appears between the ! and @
# (nick!user@host).
# default: Terminus
user = Terminus
# OPTIONAL
# The bot's "real name" or "gecos." This can be arbitrary text, and appears
# in various places, such as WHOIS results.
# default: http://terminus-bot.net/
realname = http://terminus-bot.net/
# OPTIONAL, RECOMMENDED
# The bot's alternative IRC nick. This is used if the main nick (above) is
# taken when the bot is connecting. If this one fails, underscores will be
# added. If that somehow fails enough times to max out nick length, the bot
# will probably hang right now.
# default: TerminusBot
altnick = TerminusBot
# REQUIRED
# When running commands in IRC channels, messages must begin with this
# prefix. For example, if the prefix is ! then the PING command could be run
# with: !ping This can be longer than one character.
prefix = ;
# OPTIONAL
# When dealing with text from external sources, such as web sites, the bot
# will often need to re-encode some characters. Depending on your system
# configuration and your language needs, you may need to change this value.
# If you are having problems, try changing this to UTF-8.
# default: ASCII-8BIT
#encoding = ASCII-8BIT
# OPTIONAL
# If your bot is running on a machine with multiple IP addresses, you should
# use this setting to force the bot to bind to a certain connection. If you
# are running the bot on a shell account or some other shared hosting
# platform, your provider will likely *require* you set this value correctly.
# It may also be used to take advantage of vanity host names, if you know
# how.
#bind =
# OPTIONAL
# The number of seconds to wait before attempting to reconnect to a server
# after a connection is unexpectedly lost. This may need to be as long as
# 60 or 120 seconds, as the bot may get stuck in an infinite reconnect loop
# if the server is throttling it for reconnecting too fast.
# default: 15
reconwait = 15
# OPTIONAL
# Disable or enable the nick prefix included with most replies to channel
# commands. We strongly encourage you to leave this on, as disabling it may
# allow other users to take advantage of the bot by causing it to trigger
# fantasy commands in other bots (for example, causing the bot to say
# "!kick Terminus-Bot". If you are certain you want to disable it, set this
# to false.
# default: true
#replyprefix = true
# OPTIONAL, RECOMMENDED
# The number of seconds to wait between each outgoing message. This includes
# all message types, not just messages to users. Unless the bot is opered and
# is immune to flood protection, this should be something greater than zero!
# In many cases, a value of 1 or 2 may be necessary. The default is very low
# since smaller values will generally be better for a bot that feels
# responsive.
# default: 0.25
throttle = 0.25
# OPTIONAL
# The verbosity to use for logs. Unless you are a developer, INFO will probably
# be sufficient for your needs. DEBUG is incredibly verbose.
# Valid choices: DEBUG, INFO, WARN, ERROR, FATAL
# default: INFO
loglevel = INFO
# OPTIONAL
# Once a log reaches this size (in bytes) it will be rotated.
# default: 1024000
logsize = 1024000
# OPTIONAL
# Number of log files to keep.
# default: 5
logcount = 5
# OPTIONAL
# How often the database should be written to disk in seconds. This should be
# reasonably high (300 seconds or more) as serialization and writing can be
# expensive. The database is written on exit, so this is only useful for
# crash recovery. Changes currently require a bot restart.
# default: 300
# database_flush_frequency = 300
# OPTIONAL
# Scripts in this list will not be loaded during start, but can still be
# loaded manually. Script names should be the same as the file name without
# an extension.List one script per line.
#
# The defaults included here are developer modules (lograw).
noload = {
lograw
eval
raw
rainbows
}
}
# IRC connections.
servers = {
# Here is where you add connections to IRC servers. Each connection gets its
# own block. The name of the block is the name of the server. Inside the
# blocks are the settings needed to connect. For example:
#
# freenode = {
# address = chat.us.freenode.net
# port = 6667
# }
#
# Optional settings include:
# timeout (number: seconds of inactivity before connection is
# closed; 0 disables the timeout. Must be > 0.)
# password (string)
# ssl (boolean)
# ssl_cert (string) path to ssl certificate file
# (.crt extension, usually)
# ssl_key (string) path to ssl key file (.key extension usually)
# sasl_username (string)
# sasl_password (string)
# sasl_mechanism (string: auto, plain, or dh-blowfish)
# sasl_timeout (number)
# umodes (string: user modes to set on connect)
# send_formatting (boolean: false to strip colors, etc.)
#
# Note: At the moment, only SASL PLAIN is supported.
# To use SASL, please ensure the caps module is loaded.
#
}
# Bot modules
modules = {
# List modules that should be loaded, one per line. Modules are loaded during
# start-up and cannot be unloaded. For a list of available modules, look in
# the modules directory.
#
# Some scripts depend on some modules being loaded. Some bot features, such
# as SASL, may depend on modules as well.
caps
ignores
http_client = {
# REQUIRED
# Maximum number of redirections to follow. This should be 10 or less.
# Setting it too high may cause the bot to hang. It should probably be at
# least 3.
redirects = 10
# OPTIONAL
# The HTTP or SOCKS5 proxy address to use for all HTTP requests. Do not set
# this option if you do not want to use a proxy.
# proxy_address = example.com
# OPTIONAL
# The port for the HTTP or SOCKS5 proxy to use for all HTTP requests.
# default: 8080
# proxy_port = 8080
# OPTIONAL
# The proxy type to use, if any. Can be http or socks5.
# default: http
# proxy_type = http
# OPTIONAL
# The user name to use to authenticate with your proxy. If you set this,
# remember to set proxy_password as well.
# proxy_username =
# OPTIONAL
# The password to use to authenticate with your proxy. Set this if you set
# a user name in proxy_username.
# proxy_password =
# OPTIONAL
# The maximum duration in seconds for an HTTP request. This will prevent
# malicious hosts or undesirably large files from wasting your bandwidth,
# such as when the title script is given the URL for a very large file or
# site crafted to send a never-ending stream of data.
#
# To disable and allow downloads to continue forever, set to 0 (not
# recommended).
# default: 5
# max_time = 5
# OPTIONAL
# The user agent to send to web servers when making requests.
# default: Terminus-Bot (http://terminus-bot.net/)
#user_agent = Terminus-Bot (http://terminus-bot.net/)
# OPTIONAL
# The number of seconds before closing an inactive HTTP socket.
# default: 5
#timeout = 5
}
# The URL handler module is required for quite a lot of scripts. It allows
# scripts to react to http and https links that appear in messages, and is
# generally used for title fetchers. It must be loaded after http_client.
url_handler = {
# Maximum number of URLs to match per message. If a user posts a message
# with many URLs, we will look up the titles for this many of them (from
# the first one found to the last) and post the titles, each in a separate
# message.
# default: 3
max = 3
}
regex_handler
buffer = {
# OPTIONAL
# The number of message to keep in the buffer. A larger value here will
# result in more memory usage, but will allow scripts which use this module
# to make use of more data.
# default: 100
#max_size = 100
}
}
# Account level override.
admins = {
# Here you can include account names and their authorization level,
# overriding whatever level they have in the account database. This is useful
# for creating administrative accounts by setting the level to 10.
#
# Warning: If you set an account to level 10 and that account doesn't exist,
# anyone can register it and immediately have full access to the bot. This
# can be very dangerous, since that grants access to the admin/eval command!
#
# Example:
#
# Kabaka = 10
}
# Flag table configuration
flags = {
# To prevent accidental deactivation of important scripts, you can
# list scripts here that will never be deactivated by the flags script.
#
# Scripts should be listed one per line.
#
# The only script included by default is the channels script. Without that
# script, the bot's behavior when joining or parting channels may be
# unpredicable.
#
# Default: channels
privileged = {
channels
}
# Default flag value. Must be a boolean.
#
# If this is set to false, no scripts will work in channels until they are
# explicitly enabled through the flags management script. If is set to true,
# all scripts will operate in all channels until explicitly disabled.
#
# When used in private, all scripts are always operational, regardless of
# this setting for any flags.
# default: true
default = true
}
# 4chan script.
4chan = {
# Number of lines from the original post to grab and show in the channel when
# a thread URL is sent to the channel.
#default: 1
lines = 1
}
# Account management script.
account = {
# The number of PBKDF2 iterations to use when storing passwords.
#
# Please be aware: If you change this after accounts have been created,
# nobody will be able to log in. Changing it back will resolve this.
# default: 100000
iterations = 100000
}
# Role-play battle assistance script.
battle = {
# Starting player health.
# default: 100
#start_health = 100
# The minimum damage an account can cause, if it hits.
# default: 5
#min_dmg = 5
# The maximum damage an account can cause, if it hits.
# default: 25
#max_dmg = 25
# The chance (out of 100) that an attack will miss.
# default: 10
#miss = 10
# The chance damage will be absorbed and will heal the target.
# default: 5
#absorb = 5
# Will Terminus-Bot kick users who run out of health?
# default: false
#kick_on_death = false
}
# Channel occupation management script.
channels = {
# Leave channels we join if the channels script isn't configured to include
# it. This is useful for dealing with undesired forcejoin/sajoin attempts.
# In most cases, channels are parted immediately. If that isn't possible,
# we'll periodically check for extra channels and try to part.
# default: false
antiforce = false
}
# CTCP reply script.
ctcp = {
# Include all CTCP replies you want here. These are static strings.
version = Terminus-Bot v0.8
url = http://terminus-bot.net/
}
# Derpibooru pony image booru script.
derpibooru = {
# Max tags to include in image information output. Some images may have an
# unusually large number of tags, so the list may be truncated with the
# remaining number of tags indicated at the end.
# default: 10
#max_tags = 10
# Optional key value. This is your user key, which can be found as part of
# your RSS feed URL, and other places. By setting this key, searches will
# be filtered according to your settings. Without it, default filters will
# apply, meaning that explicit and other images will not appear.
#key =
}
# Dictionary (cleandictionary.com) look-up script.
dictionary = {
# Max definitions to include when replying to a look-up request. Each reply
# is sent in a separate message, so setting this any higher than 1 will make
# the bot seem very spammy!
# default: 1
max = 1
}
# e621.net image booru script.
e621 = {
# Your user name. This, and your password hash (below), are only required for
# retrieval of comments.
#login =
# Your SHA1 password hash. This, and your user name (above), are only
# required for retrieval of comments. To get your password hash, go to:
# https://e621.net/user/login.xml?name=USERNAMEHERE&password=PASSWORDHERE
# Storing your password in plain text on any computer is unwise, which is why
# this step is required.
#password_hash =
# Max tags to include in image information output. Some images may have an
# unusually large number of tags, so the list may be truncated with the
# remaining number of tags indicated at the end.
# default: 10
#max_tags = 10
}
# Exchange rates script.
exchange = {
# API key to use for authentication. Required for all queries. A free or paid
# API key can be acquired here: https://openexchangerates.org/signup/
#apikey =
}
# Google search script.
google = {
# REQUIRED
# User agent to send with API requests. See Google's API docs for information
# on why this should be set.
#useragent =
# Max results to include when replying to a search request. Each reply is
# sent in a separate message, so setting this any higher than 1 will make the
# bot seem very spammy!
# default: 1
resultlimit = 1
}
# Script to play IdleRPG
idlerpg = {
# IdleRPG configuration is per-network.
#
# In order for the bot to play IdleRPG, it must have:
# - channel: the channel in which the game is played
# - nick: the nick of the IdleRPG bot
# - login_command: the message to send the IdleRPG bot to log in
#
# You may also include xml_url, the URL to use to get XML-formatted
# information about users playing IdleRPG. This only works for jotun's IRPG
# bot's PHP XML generator. You can include just the xml_url setting if you
# don't want the bot to play but you want it to be able to retrieve player
# information.
#
# Example:
#
# ponychat = {
# channel = #idlerpg
# nick = IdleRPG
# login_command = LOGIN Terminus-Bot foobar
# xml_url = http://ponychat.net/idle-rpg/xml.php?player=
# }
#
}
# Imgur.com script.
imgur = {
# Client ID to use for Imgur look-ups. Since only public information is
# retrieved via the API, the client secret is not required here. Because of
# this, we are willing to use our client ID in the released version of
# Terminus-Bot. However, if you would like, you may register with Imgur and
# use your own client ID here. This is a good idea if your bot handles a very
# large number of requests, of you simply want to have your own.
#
# If this is empty or commented out, the Imgur script will not function.
client_id = e055d930f90c3da
}
# Last.fm script.
lastfm = {
# REQUIRED
# lastfm.com API key. Without this, the bot cannot perform any look-ups!
# acquire at: http://www.last.fm/api
#apikey =
}
# Music Player Daemon script.
mpd = {
# Host name or IP of the MPD server.
# default: localhost
#address = localhost
# Port number for the MPD server.
# default: 6600
#port = 6600
# Password for the MPD server.
#password =
# You may announce track and state changes on IRC. If you want to enable this
# feature, you must set both announce_server and announce_channel. It is up
# to you to make sure the bot is on the given server and in the given channel
# in order for this to work -- **IT WILL NOT JOIN BASED ON THIS SETTING**.
# IRC server name on which to announce MPD status. This must match the server
# name configured in this file.
#announce_server =
# IRC channel on which to announce MPD status. Again, you must ensure the bot
# will join, such as through the channels script.
#announce_channel =
# The interval (in seconds) at which the MPD server should be polled for
# track changes or state changes for annoucement.
# default: 5
#announce_check_interval = 5
}
# Regular Expression script.
regex = {
# The number of message to keep in the buffer. A larger value here will of
# course mean more memory usage, but it also means regular expression
# searches (g/foo/) and replacements (s/foo/bar) will work for older
# messages.
#
# If the search function is not important to you, a very small value (10 or
# 20) is probably fine.
#
# default: 100
#buffer = 100
# The maximum about of time (in seconds) that the regular expression script
# may spend attempting to match a regular expression. This is to mitigate
# denial of service attacks by cutting them off before the bot times out.
#
# default: 2
#run_time = 2
}
# Channel relay script.
relay = {
# Show the channel name in relay output.
# Example:
# Enabled: [freenode:#Terminus-Bot] <Kabaka> Hello!
# Disabled: [freenode] <Kabaka> Hello!
# default: true
#show_channel = true
}
# RSS/ATOM feed reader script.
rss = {
# Interval (in seconds) to check for new feed items.
# default: 1800
#interval = 1800
# Maximum number of feed items to show when new items are found. If more than
# this many items are new, the older items will not be shown. Each item is
# posted in its own message, so setting this very high could cause the bot to
# be spammy.
# default: 3
#max = 3
}
# Reverse Polish notation calculator script.
rpn = {
# The maximum number of times the p (print top of stack) or f (print whole
# stack) operators may be used in a command. After the last print has been
# used, calculation will immediately and silently end.
#
# This should be kept very low, as higher values mean users can cause more
# spam.
#
# default: 3
#max_prints = 3
}
# Tell (mail/memo) script.
tell = {
# The maximum number of tells that can be left for a nick. This should
# probably be less than 5. Every tell is posted in a separate message, so
# letting users leave too many messages could result in a channel flood when
# tells are sent!
# default: 3
max = 3
# Always send a private NOTICE when delivering tells. Many clients poorly
# display private notices, so this is off by default.
# default: false
#use_notice = false
}
# Help script for listing commands and scripts
help = {
# Enable line splitting for help output? If you have more commands loaded
# than the maximum line length of the ircd, using this will send multiple
# messages per invocation of the help command.
# default: false
#multi_line = false
#
# Number of characters max in one line before splitting, if the above
# multi_line is true.
# default: 400
split_length = 400
}
# Generic link title announcer.
title = {
# Maximum HTTP title length, anything longer than this gets trunacated with
# '...'
# default: 350
max_title_length = 350
}
# UPC look-up script (upcdatabase.org).
upc = {
# The API key for upcdatabase.org. This is required to perform look-ups with
# this script. You may register for free at: http://upcdatabase.org/signup
#apikey =
}
# Urban Dictionary (urbandictionary.com) look-up script.
urbandict = {
# Max definitions to include when replying to a look-up request. Each reply
# is sent in a separate message, so setting this any higher than 1 will make
# the bot seem very spammy!
# default: 1
max = 1
}
# Wikipedia script.
wikipedia = {
# Wikipedia site to use for look-ups. This setting allows you to change what
# language your Wikipedia results are displayed in, and which site is
# searched. This is the short set of letters that appears before the
# wikipedia.org in the URL. For example, en for English or de for German
# (en.wikipedia.org and de.wikipedia.org).
#
# default: en
#site = en
}
# Link title fetching script.
youtube = {
# Post a shortened version of YouTube links which are not already short.
# default: false
#shorten_links = false
}