Previously, the environment variable would take priority over the
command line argument. This is now reversed.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
* Log levels can now be set via the command line and the configuration
file.
* ServerConfig.load() function takes a file-like object now, rather than
a string
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
There's a long explanation in the code of this commit that says this:
> TL;DR OF THE BELOW: if the first parameter looks like a channel in
> addition to message type, then filter by channel. Otherwise, don't
> filter by channel.
>
> Here's the issue: plugins are *usually* multiplexed by channel. But
> that's only for messages that target channels, such as PRIVMSG and JOIN.
> For non-channel messages, such as server status messages (such as 001 on
> connect, or 372 for MOTD, etc) we want to ignore the channel aspect of
> plugin multiplexing. In order to accomplish this, we just check if the
> first parameter looks like a channel - i.e., starts with an octothorpe #.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This allows plugins to specify the types of messages they handle. This
will be used specifically for the nickserv plugin, but could be useful
for other things too.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
Plugins now use Bots instead of server_configs, this is useful for
checking the currently joined channels and perhaps using the connection
when there isn't one available in the current method.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
* on_connect is called on all plugins on the first message received from
the IRC server
* joined_channels property gets all of the channels that this bot has
currently joined in IRC
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This sets up a set of ropes and pulleys that signal the `Bot.keepalive`
function to clean things up after a quit signal has been sent. This
allows plugins to define an `on_unload` function to save any important
datas on intentional exit.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This is beneficial for all plugins so the bot doesn't accidentally
spam things because the plugin writer didn't check their inputs
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>