#!/bin/bash # -*- coding: utf-8 -*- ########################################################################### # # # envbot - an IRC bot in bash # # Copyright (C) 2007-2008 Arvid Norlander # # Copyright (C) 2011 Joseph Graham # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ########################################################################### # Variables marked with (*) will take effect at a rehash as well. # What version this config is at. This is used to check # if your config needs updating. config_version=17 #################### # General settings # #################### # Nick to use config_firstnick="pbot" # Nick if first is in use config_secondnick="pbot_" # Nick if second is in use config_thirdnick="pbot-ng" config_ident='rfc3092' config_gecos='ietf.org/rfc/rfc3092' ################### # Server settings # ################### # Server to use config_server='irc.freenode.net' # What port to use. Normally 6667 works for non SSL connections. config_server_port='6667' # If 1 use SSL, not all transport modules support this. config_server_ssl=0 # Accept invalid server certificates? # Note that some SSL modules (openssl for example) just # print any errors and continues anyway config_server_ssl_accept_invalid=1 # Be verbose when connecting? # Not all SSL modules support it. The ones that doesn't # support it will just ignore it. # Be aware that this is mainly for debugging of SSL transport # modules as it is possible the verbose output may confuse the bot! config_server_ssl_verbose=0 # If not empty try to bind to this IP when connecting, useful # to select vhost. Not all transport modules support this. config_server_bind="" # If this is empty don't use a server password. config_server_passwd="$( cat password.secret )" ################## # Access control # ################## # (*) Access regexes # Without at least one set, the bot won't start # "owner" is a special capab that grants all other access. # The first access entry must be an owner. # # Scope is a regular expression of channels where access is effective. # A /msg (like say to a non channel) will get the scope MSG # Anything affecting global state will have the scope "GLOBAL" # # There can be several access masks matching same host (to allow # for different scope/capab combinations). config_access_mask[1]='^xylon!user@2001:ba8:1f1:f216::5$' config_access_capab[1]='owner' config_access_scope[1]='.*' # Some more access examples: #config_access_mask[2]='^Someone!whatever@customer-1234\.isp\.com$' #config_access_capab[2]='say kick' #config_access_scope[2]='#channel' #config_access_mask[3]='^Someone!whatever@customer-1234\.isp\.com$' #config_access_capab[3]='facoid_admin' #config_access_scope[3]='GLOBAL' ############ # Commands # ############ # (*) A regular expression of prefixes we should listen to. config_commands_listenregex="(;|${config_firstnick}[:,] )" # (*) Should we treat any message in /msg as a command even # if it doesn't have the the listen prefix? config_commands_private_always=1 ############ # Feedback # ############ # (*) How to treat unknown commands: # Valid values: # 0 = Ignore them (drop command, do nothing). # 1 = Return error to sender. # 2 = Pass them on to modules that may handle "generic" PRIVMSG. # Note that non-commands always get passed on to "generic" PRIVMSG handling modules. config_feedback_unknown_commands=2 ########### # Logging # ########### # Directory for log files config_log_dir="logs" # (*) Should we log raw data or not? # Can be 1 (log) or 0 (don't log) config_log_raw=1 # (*) Should we always log to STDOUT as well? # Note that this doesn't mean it will not log at all if set to 0. # It will still log errors and other important log messages to STDOUT. # This is the same as --verbose. # Can be 1 (log) or 0 (don't log) config_log_stdout=0 # (*) When logging to STDOUT should we use colors? config_log_colors=1 ############# # Transport # ############# # Transport module. You should select exactly one. # The recommended non-SSL module is dev-tcp. # The recommended SSL module is gnutls. config_transport='dev-tcp' #config_transport='netcat' # Not well tested, for Debian users and other # with broken distros. #config_transport='gnutls' #config_transport='socat' # Not well tested #config_transport='openssl' # Not well tested # netcat options # MAKE SURE THEY ARE CORRECT if you use netcat. #config_transport_netcat_path='/usr/bin/netcat' # socat options # MAKE SURE THEY ARE CORRECT if you use socat. # # This tells if to use IPv6 or IPv4 to connect. # socat doesn't support automatic choice of this. # Note that socat versions below 1.5 does not # support using IPv6 and SSL at the same time. # This can be either "ipv4" or "ipv6". config_transport_socat_protocol_family=ipv4 # Where are transports stored, this can be a relative path from the # main script of the bot, or an absolute path. config_transport_dir="transport" ############################ # Non-Module Misc features # ############################ # should we always ask to be channel op upon join readonly BECOME_OP_ON_JOIN=0 # which channels are we allowed to be op readonly OP_CHANNELS='#parabola' # mail directory to use to trigger creation of internally injected messages (e.g. redmine changes) readonly BOT_MAIL_DIR="/home/pbot/Maildir/new" # storage file to use for internally injected messages pending readonly IPC_QUEUE_FILE=/var/lib/pbot/ipc-message-queue # nick to use for internally injected messages readonly INJECT_NICK='01234-PBOT-BCDEF%' # invalid IRC nick # prefix to use for internally injected messages readonly IPC_INJECT_PREFIX=':'${INJECT_NICK}'!~user@2001:ba8:1f1:f216::5 PRIVMSG' # target channel for internally injected messages readonly IPC_NOTICE_CHANNEL='#parabola' ########### # Modules # ########### # What modules to load on startup, space separated list # For a list of modules see the modules dir. # Note that the order of the modules may be important # # The list should normally start with "modules rehash services umodes autojoin" # Some modules should be placed last. "factoids" and "karma are such modules. #config_modules="modules rehash services umodes autojoin ctcp translate spamfilter" config_modules="modules rehash services umodes autojoin ctcp translate" # Where are modules stored, this can be a relative path from the # main script of the bot, or an absolute path. config_modules_dir="modules" ############################ # Module specific settings # ############################ ##################################################################### # Services module # # (*) NickServ password config_module_services_nickserv_passwd="${config_server_passwd}" # (*) Name of NickServ # Normally this is correct. config_module_services_nickserv_name='NickServ' # (*) Service style. Supported are: generic, atheme # For the default server (irc.kuonet-ng.org) use atheme # Otherwise try generic, that will work with atheme too but # some features will be disabled. config_module_services_style='atheme' # (*) Use server side aliases # Try 1 first, if the bot fails to identify try 0 config_module_services_server_alias=1 ##################################################################### # FAQ module # # (*) Location of FAQ items. config_module_faq_file='data/faq.txt' #################################################################### # Quote module # # (*) Location of quotes file config_module_quotes_file='data/quotes.txt' ##################################################################### # AutoJoin module. # # Channels to autojoin on connect config_module_autojoin_channels[1]='#parabola' # A channel can have a key as showed in the example below config_module_autojoin_channels[2]='#botwars' ##################################################################### # Umodes module. # # (*) Default umodes to set on connect. Also set these at a rehash. config_module_umodes_default_umodes="+isB-w" ##################################################################### # CTCP module # # (*) What to reply to VERSION requests. config_module_ctcp_version_reply="pbot-ng $envbot_version" ##################################################################### # SpamFilter module # # Channels in which we should filter known spam. # (requires: $BECOME_OP_ON_JOIN and channel in $OP_CHANNELS) config_module_spamfilter_channels='#parabola' ##################################################################### # Translate module # # Channels in which we translate chat. config_module_translate_channels='#parabola' ##################################################################### # SQLite3 module # # (*) Location of SQLite3 database file #config_module_sqlite3_database='data/envbot.db' ##################################################################### # Factoids module # # (*) Table name for factoids in SQLite3 database #config_module_factoids_table='factoids' ##################################################################### # Karma module # # (*) Table name for karma data in SQLite3 database #config_module_karma_table='karma' ##################################################################### # Seen module # # (*) Table name for seen data in SQLite3 database #config_module_seen_table='seen' ##################################################################### # Vote module. # # (*) The channel where vote mode will work. # Note that this is a regular expression that will be # surronded by ^ and $ when matching. #config_module_vote_channel='#mychannel' # (*) How long a vote is open before it is closed (in seconds). #config_module_vote_timeout='900' ##################################################################### # For contrib modules please see the contrib module in question # for information on what variables it uses.