Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
749 lines (569 sloc) 20.8 KB
# 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
}