- Provide Affilate Command base class which can serve as the base for providing moderation/role handling features
- Use Affiliate class to provide a RandomPromotion class which does what the name suggests.
- Added some more mock values to the test client in debug mode.
- Fully require the
bot
argument for all methods. - Support hooking up handlers to lower level events, making it possible
to hook that up via the config file to available module/class paths.
This is implemented in the
presence
module. - For the mean time
Presence
is the new baseHandler
for the lower level events. - First such handler is the automatic rejoin when bot is no longer in
a channel, implemented in the
Muc
class. - Another one is greeter, implemented in the
MucGreeter
class. - The
Command
class is now a subclass ofHandler
; that is now the class that will be checked. In the future this requirement may be dropped once validation of argument signature for the provided callables can be done. - A
LastActivity
feature; can be used as a!seen
trigger to get back a rough idea on when the user was last seen. This intends to be a demo implementation. - Test client class now supports scheduling properly; clear method now works as intended.
- Other minor cleanup and updated tests.
MucChatBot.send_message
now much more resistant to malformed messages generated by package method, and now allow overriding of bothmbody
andmhtml
arguments which will cascade down to the realsend_message
method, if bot authors want complete output control.- Consistently handle lists that may be generated by package_methods in the same way as a single text or dict.
- No longer will assign a reference to
bot
for every instances ofCommand
class.
- Private chat message handling for private message commands.
- Core configuration file generation from the jibber shell command.
- Helper method for dynamic module reloading within debug mode.
- Core functions implemented, including connect to XMPP server as a muc client, and to provide trigger handlers and dynamic module/object loaders so those triggers can make something happen.