Whistler Bot is a XMPP bot with MUC (multi-user-conference) support, easy to extend, written in python, using SleekXMPP. http://whistler.ajdiaz.me

Andrés J. Díaz 295b44428d Merge pull request #14 from movermeyer/fix_badges 2 years ago
config e175160f16 More documentation 6 years ago
doc e90b09f071 Improvement documentation. 7 years ago
whistler bd9d59dbae Add support for fixed users in config. 6 years ago
.drone.yml cf9d422d95 Fix stupid bug in config 6 years ago
.gitignore aaa8a71976 Add build temporary directories to ignore file 8 years ago
README.rst abcf0fc296 Switched broken pypip.in badges to shields.io 2 years ago
setup.py 146afdddae Minimal python3 stuff 6 years ago


Whistler Bot

Whistler Bot is an XMPP bot written in python using SleekXMPP_, which is
a requirement. The bot is designed to handle some commands, and it is easy to

.. image:: https://img.shields.io/pypi/v/whistler.svg
:target: https://crate.io/packages/whistler/
:alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/dm/whistler.svg
:target: https://crate.io/packages/whistler/
:alt: Number of PyPI downloads

Simple usage:

.. code-block:: bash

$ whistler myconfig.conf

Create bot programmatically:

.. code-block:: python

from whistler.bot import WhistlerBot

bot = WhistlerBot( "myjid@myserver.com", "mypassword" )

.. _SleekXMPP: https://github.com/fritzy/SleekXMPP

Extending bot
You can extend the bot functionalities, just see for example the code of the
whistler console script. In short you can add commands creating a new class
from WhistlerBot, and define new functions in the form ``cmd_`` plus the
command name, for example, to handle the command *ping*.

.. code-block:: python

from whistler.bot import WhistlerBot

class MyBot(WhistlerBot):

def cmd_ping(self, msg, args):
return "pong"

Example chat

.. image:: doc/source/_static/whistler_screenshot.png
:align: left
:alt: An example of chat with Whistler

Whistler allows to send private commands in usual jabber (and of course
GTalk and Google Hangouts) chat.

Also public commands are available, prefixed them with "!" (exclamation mark),
as also reply to a direct mention in the form "whistler:" or "whistler,", where
"whistler" is the nickname of the bot in the MUC::

(Me) whistler: uptime
(whistler) 17:33:01 up 2 days, ...

Currently Whistler support a number of features, including tweet from
command, shorting url action and so on...

You can see the mixins_ directory to see a number of examples for whistler
and how easy is to extend.

.. _mixins: https://github.com/ajdiaz/whistler/tree/master/whistler/mixins


Any new mixin or functionality is welcome to Whistler. If you has been
developed new one or want new feature, please `send me a message` or a `pull

.. _`send me a message`: mailto:ajdiaz@connectical.com
.. _`pull request`: https://github.com/ajdiaz/whistler/pulls