- Move the config comments to botconfig.py.example where they will be more useful, and move the bits in settings.py near the other IRC-related settings. - Removed support for hash types that aren't SHA-256 as we perform all the hashing on our end (doesn't matter what the server does or does not support), and this greatly simplifies the code while leaving things secure enough. - Hardcode a default cipher suite according to mozilla modern standards, as the builtin ciphersuite in python may be less secure for older python versions. - Add support for EXTERNAL auth in SASL, if a client certificate is provided. If this fails, it will fall back to PLAIN auth (to account for the case where a cert is added to the bot, but has not yet been added to NickServ, so that the bot can connect and add it to NickServ via !fsend) - Redact passwords from console/log output so that asking people to pastebin their --verbose output when reporting issues in #lykos is less fraught with peril.
94 lines
4.1 KiB
Python
94 lines
4.1 KiB
Python
HOST = "chat.freenode.net"
|
|
PORT = 6697
|
|
NICK = "mywolfbot"
|
|
IDENT = NICK
|
|
REALNAME = NICK
|
|
USERNAME = "" # For authentication; can be left blank if the same as NICK.
|
|
PASS = "my_nickserv_pass" # can be None if authenticating with client certificates (see below)
|
|
SASL_AUTHENTICATION = True
|
|
|
|
USE_SSL = True
|
|
SSL_VERIFY = True
|
|
# SHA256 fingerprints of server certificates. Usually not needed, but for extra security
|
|
# you may set this. Otherwise, we validate certificates as long as they chain up to a trusted CA.
|
|
# If set, CA validation is not considered, and we validate based on the fingerprint. If the server
|
|
# is using self-signed certificates, you will want to make use of SSL_CERTFP.
|
|
# An example below is for freenode; note that certificate fingerprints can and do change over time,
|
|
# so manual adjustment may be required if you make use of this setting.
|
|
# Example of how to obtain a fingerprint:
|
|
# openssl s_client -connect chat.freenode.net:6697 < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
|
|
# The comma at the end is required if there is only one fingerprint.
|
|
#SSL_CERTFP = ("51:F4:3A:29:80:49:10:F0:23:5C:5E:F4:3B:0C:0A:6E:D9:42:BF:A1:60:89:4A:28:38:AD:CF:F7:DE:49:B4:16",)
|
|
|
|
# For authenticating with client certificates, set these options
|
|
SSL_CERTFILE = None # Client cert file to connect with in PEM format. May contain private key as well.
|
|
SSL_KEYFILE = None # Keyfile for the certfile in PEM format
|
|
|
|
CHANNEL = "##mywolfgame"
|
|
|
|
CMD_CHAR = "!"
|
|
|
|
# If your server requires a connection password, or your services package expects
|
|
# a different format if authenticating to NickServ via the PASS command, modify this.
|
|
# "{account}:{password}" should work fine on Atheme-based services packages.
|
|
#
|
|
# Note: Do not put the account and password here; they will be automatically substituted
|
|
# from the USERNAME (or NICK) and PASS variables on the top of the file.
|
|
SERVER_PASS = None
|
|
|
|
OWNERS = ("unaffiliated/wolfbot_admin1",) # The comma is required at the end if there is only one owner.
|
|
OWNERS_ACCOUNTS = ("1owner_acc",)
|
|
|
|
#RULES = "https://werewolf.chat/Freenode:Rules"
|
|
|
|
ALLOWED_NORMAL_MODE_COMMANDS = [] # Debug mode commands to be allowed in normal mode
|
|
OWNERS_ONLY_COMMANDS = [] # Commands that should only be allowed for owners, regardless of their original permissions
|
|
|
|
DISABLE_DEBUG_MODE_REAPER = True
|
|
DISABLE_DEBUG_MODE_STASIS = True
|
|
DISABLE_DEBUG_MODE_TIMERS = True
|
|
DISABLE_DEBUG_MODE_TIME_LORD = False
|
|
|
|
ALT_CHANNELS = ""
|
|
ALLOWED_ALT_CHANNELS_COMMANDS = []
|
|
|
|
DEV_CHANNEL = "" # Important: Do *not* include the message prefix!
|
|
DEV_PREFIX = "" # The prefix to send to the dev channel (e.g. "+" will send to "+#dev-chan")
|
|
PASTEBIN_ERRORS = False # If DEV_CHANNEL is set, errors will be posted there.
|
|
|
|
LOG_CHANNEL = "" # Log !fwarns to this channel, if set
|
|
|
|
|
|
IGNORE_HIDDEN_COMMANDS = True # Ignore commands sent to @#channel or +#channel
|
|
ALLOW_NOTICE_COMMANDS = False # Allow "/notice #channel !command" to be interpreted as a command
|
|
ALLOW_PRIVATE_NOTICE_COMMANDS = True # Allow "/notice botnick command" to be interpreted as a command
|
|
|
|
CHANGING_HOST_QUIT_MESSAGE = "Changing host"
|
|
|
|
|
|
USE_UTC = True # If True, logs will use the UTC time, else local time.
|
|
|
|
# %Y is the year, %m is the month, %d is the day, %H = hour, %M = minute, and %S = seconds.
|
|
# {tzname} and {tzoffset} can both be used - the timezone name (like UTC) and offset (+0000), respectively.
|
|
TIMESTAMP_FORMAT = "[%Y-%m-%d %H:%M:%S{tzoffset}]"
|
|
|
|
|
|
# The defaults used by the bot should work on freenode and other networks using Atheme.
|
|
#
|
|
# An example configuration for Undernet is provided below; if you're running the bot on Undernet,
|
|
# you can simply uncomment the following lines. For other networks, you can set the appropriate
|
|
# values manually.
|
|
#
|
|
# Note: Do not put the account and password here; they will be automatically substituted
|
|
# from the USERNAME (or NICK) and PASS variables on the top of the file.
|
|
|
|
#NICKSERV = "x@channels.undernet.org"
|
|
#NICKSERV_IDENTIFY_COMMAND = "LOGIN {account} {password}"
|
|
#NICKSERV_GHOST_COMMAND = ""
|
|
#NICKSERV_RELEASE_COMMAND = ""
|
|
#NICKSERV_REGAIN_COMMAND = ""
|
|
#CHANSERV = "x@channels.undernet.org"
|
|
#CHANSERV_OP_COMMAND = "OP {channel}"
|
|
|
|
# vim: set ft=python:
|