This is a cute little irc bot
Find a file
Elijah Lazkani 75993f0d1a A few changes from the last commit again that add great features
* Now list of administrators is saved to drive for the bot to
  load again on next start
* Administrators now have levels and default behaviours, for more
  info read the `README`
* For security purposes, now the passwords are hashed and handled as
  hashes
* Added the ability for the administrators to change their own
  password
2017-09-09 20:30:14 -04:00
boots A few changes from the last commit again that add great features 2017-09-09 20:30:14 -04:00
config A few changes from the last commit again that add great features 2017-09-09 20:30:14 -04:00
LICENSE Second commit: 2017-09-06 20:39:32 -04:00
README.md A few changes from the last commit again that add great features 2017-09-09 20:30:14 -04:00
requirements.txt A few changes from the last commit again that add great features 2017-09-09 20:30:14 -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 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

  • A better way to handle help pages