This is a cute little irc bot
Go to file
2018-03-17 10:50:04 -04:00
boots Fixing ugly exit with adding a clean interrupt exit. 2018-03-17 10:50:04 -04:00
config This change introduces better logging for the bot 2017-09-16 12:05:41 -04:00
log This change introduces better logging for the bot 2017-09-16 12:05:41 -04:00
requirements Moving requirements to its down directory 2017-09-22 23:20:13 -04:00
LICENSE Second commit: 2017-09-06 20:39:32 -04:00
README.md Adding the ability to inject functions to be ran prior to the Bot joining channels 2017-09-22 23:35:28 -04:00

boots

Description

This project is an attempt to write a fully featured IRC bot. I am learning to write code in python and get better at it. If you are reading this then you are welcome to contribute code, reviews are a part of learning programming =)

Requirements

This code only requires the following dependencies:

8ball

The Eightball class gives the bot the ability to support the iconic 8Ball game. It will only answer to the keyword provided to the Eightball object.

Admin

The Admin module provides the ability to add bot administrators who can request some destructive actions that might put the bot itself being abused like msg, action, join, part and quit.

Commands

So far, the Admin module by default creates a new pickle database if one does not exist yet, otherwise it will attempt to import it.

The Admin module supports multiple commands to manage administrators. Currently, it supports login, logout, passwd, add, rm and list.

A rudimentary help system was written, this system needs to be replaced in the future with a system wide event driven help compiler of sorts.

Behaviours

A few default behaviours to note about the Admin module.

  • If no database exists, it will create one with a default username and password as Admin and Pa$$w0rd, respectively.
    • The default Admin user is not a special user and can be deleted by a user of the same level only.
    • An admin with level 1000 is owner and can add or remove any user of the same or lower access level.
  • If a database exists, it will attempt to import it. If it fails, it will create a new database talked about in the previous point.
    • Default behaviour is that an admin can add another admin with an access level lower than their own.
    • Default behaviour is that an admin cannot remove another admin with equal or higher access level than their own.
    • Default behaviour when an admin uses the passwd command to change their password, they will be immediately logged out on successful password change and will require to log back in to test that they set the right password.

TODO

  • Test suites
  • Module to handle service authentication
  • A better way to handle help pages
  • Sphinx documentation generation