Fulvia IRC Bot
Go to file
2019-01-17 11:19:12 -05:00
modules added command to start minecraft server 2019-01-17 11:19:12 -05:00
tools fix command name lookup error, maybe fix seendb threading error 2018-05-29 08:08:42 -04:00
.gitignore added slur.py 2018-07-21 13:15:00 -04:00
bot.py added ability to disable modules from the config 2018-06-11 12:50:09 -04:00
config.py initial commit 2018-03-16 03:13:43 -04:00
db.py made connections thread safe 2018-03-25 14:26:48 -04:00
loader.py modeChanged() works properly, small changes to module loading 2018-05-27 14:16:50 -04:00
module.py @require_privilege actually sets func.priv this time 2018-05-27 20:01:04 -04:00
README.md updated dependencies 2019-01-17 11:18:46 -05:00
run.py idk what these are, probably just branding 2018-03-25 14:27:40 -04:00
trigger.py idk what these are, probably just branding 2018-03-25 14:27:40 -04:00

Fulvia

NIGGER DICKS 2: Electric Boogaloo

It's like Sopel, except rewritten from scratch using Twisted as a base and over half the features ripped out.

Requirements

Python 3.6+
Python packages: twisted, python-dateutil, requests, bs4, wolfram, pyenchant, emoji, Pillow, xml2dict, ipython, numpy, numpngw

Config

nickname - The nickname the bot will use.
realname - The realname the bot will use.
username - The user ident the bot will use.
prefix - The command prefix the bot will listen for.
homedir - The bot's home directory. Required for the bot to get certain pathing right. In the future that will be obtained automatically.
server - The server address to connect to.
port - The server port to connect to. SSL will probably not work.
use_ssl - Place holder.
channels - Which channels to join upon connection.
db_filename - Filename to use for the bot's database.
owner - The bot's owner. Use for permission purposes on restricted commands. Outranks admins. Should be the full hostmask of the user.
admins - Comma-delineated list of admins the bot will recognize for restricted commands. Should be the full hostmask for each one.
default_time_format - The format used for all timestamp operations. See the official python docs for the time library for more information.
disabled_modules - Comma-delineated list of modules not to load on startup. Modules should be specified without the .py extension.

Example default.cfg

[core]
nickname = DiceBot9002
realname = DiceBot9002
username = DiceBot9002
prefix = .
homedir = /home/iou1name/fulvia
server = irc.steelbea.me
port = 6667
use_ssl = false
channels = #SomaIsGay,#test
db_filename = DiceBot9002.db
owner = iou1name!~iou1name@operational.operator
admins =
default_time_format = [%Y-%m-%d %H:%M:%S]
disabled_modules = countdown

[wolfram]
app_id = API_KEY
units = nonmetric

[movie]
tmdb_api_key = API_KEY

[currency]
api_key = API_KEY 

TODO

Fix the movie table
Consider re-adding the following modules: etymology, ip
Add CTCP responses
More complex versioning