Metadata-Version: 2.0
Name: asyncbots
Version: 0.1.7
Summary: A framework for Slack RTM bots.
Home-page: https://github.com/davisyoshida/asyncbots
Author: Davis Yoshida
Author-email: dyoshida@ttic.edu
License: MIT
Description-Content-Type: UNKNOWN
Keywords: slack chatbot rtm bot
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Framework :: AsyncIO
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.5
Requires-Dist: mongoengine
Requires-Dist: pyparsing
Requires-Dist: requests
Requires-Dist: websockets


AsyncBots
==========

This library provides a simple ``asyncio`` based interface for writing ``RTM <https://api.slack.com/rtm>`` bots for Slack. Many distinct functions can be run through a single Slack bot plugin, triggered by user defined commands (e.g. ``!myCommand``).

Example
```````
A bot which can be triggered by the message ``!greet Guido`` looks like this:

.. code:: python

    from asyncbots.bot import SlackBot, register
    from asyncbots.command import MessageCommand
    from pyparsing import alphas, Word

    class MyBot(SlackBot)
        def __init__(self):
            self.name = 'My Bot'

            # Match 'greet' followed by any word
            self.expr = 'greet' + Word(alphas).setResultsName('user')

        @register()
        async def handler(self, sender, channel, parsed_message):
            return MessageCommand('Hello ' + parsed_message['user'])


