/bibby

A silly IRC bot framework

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Bibby

An extensible IRC bot framework that relies on inter-process communication rather than plugins.

The idea is that commands are dispatched to configurable HTTP addon services which do all the heavy lifting. This would allow shared services to be deployed servicing multiple bot instances. Basically the "bot" part of bibby is a simple dispatch loop, all the "smarts" are in the addon services.

  +----------+   POST /api/v0/time     +-----------------+
  |   bot    |------------------------>|   basic addon   |
  +----------+                         +-----------------+
           |
           |    POST /api/v0/fact      +----------------+
           `-------------------------->|   fact addon   |
                                       +----------------+
                                                 |
                                               +----+
                                               | db |
                                               +----+
POST /api/v0/command/time
{
    "arguments" : "",
    "channel" : "#bibby",
    "bot" : {
        "nickname" : "bibbybot"
    },
    "caller" : {
        "nickname" : "rtyler",
        "mode" : "+o"
    },
    "server" : {
        "hostname" : "irc.libera.chat",
        "port" : 6697,
        "tls" : true
    }
}