Skip to main content

A multi-platform chat bot framework

Project description

# Chatty

A multi-platform chat bot framework

## Description

Chatty is a Python 3 package designed to map any chat platform to the same standardized interface. The goal is to allow a chat bot to be remapped from one platform or protocol to another, or even to multiple platforms at the same time, with nothing more than a change to a configuration file.

## Current Development Status

Chatty is brand new, and has currently only been tested for basic message delivery using email (imap & smtp, but not pop3 yet) and xmpp. Support for Slack is underway. See the [TODO list] for a list of platforms & protocols that will (hopefully) eventually be added.

## Contributing

If you have a need for a specific platform or protocol to be supported, I’ll be happy to accept pull requests. If you’re looking to contribute but need a place to start, please see the [TODO list]. There are plenty of platforms and functionality yet to be added. Each supported platform has its own module in the [chatty/sessions] folder, and its dependencies should be added to the extras_require parameter in [setup.py]. Tests go in the [test_chatty] folder and are named with test_ prefixed to the name of the module being tested.

Submitted code should adhere to [pep8 guidelines] and should, in general, follow the conventions established elsewhere in the Chatty code base. For the sake of clarity, please note that by submitting a pull request, you agree, as per standard practice, and also the [GitHub terms of service] to make your code available under the [license] governing this project.

## Design

The design of Chatty is object-oriented, and centers around 3 core abstractions:

  • Signals: A signal is any single indivisible element of communication, such as a message or a notification, which may or may not contain content or data of some sort. Signals always come with certain attached metadata which determines where the signal originated, who it was sent to, when it was sent, etc.

  • Bots: A bot is an endpoint where inbound signals are handled, and outbound signals are generated.

  • Sessions: A session is an open channel over which signals can be sent and/or received.

By default, signals arrive and are sent asynchronously. The SynchronizedBot wrapper can be used to ensure receipt and sending of signals is fully synchronized from the perspective of the bot.

[chatty/sessions]: https://github.com/hosford42/Chatty/tree/master/chatty/sessions [GitHub terms of service]: https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license [license]: https://github.com/hosford42/Chatty/blob/master/LICENSE [pep8 guidelines]: https://www.python.org/dev/peps/pep-0008/ [setup.py]: https://github.com/hosford42/Chatty/blob/master/setup.py [test_chatty]: https://github.com/hosford42/Chatty/tree/master/test_chatty [TODO list]: https://github.com/hosford42/Chatty/blob/master/TODO.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Chatty-0.0.1.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Chatty-0.0.1-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file Chatty-0.0.1.tar.gz.

File metadata

  • Download URL: Chatty-0.0.1.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Chatty-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9443e28e61cee45a51411870e3ab068d95b192846abf6908e782b9b04fc1d2d6
MD5 e5639d02a3655fe7d5c19e965ed0bcb1
BLAKE2b-256 17eba2fdad1c918191c3cb95a3a57782295b8979f024a1714844d795357ac73c

See more details on using hashes here.

File details

Details for the file Chatty-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for Chatty-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c2de3e936ff37757176a3a00a90d86a0d25f413ecf6c6ff9c6fdc5d14433c30
MD5 04c31246c975fbd8411cdefec864ddb3
BLAKE2b-256 13b2886b07e576a9ee409b13ce52bbf192b5f8d54f05b5712b0d184bf808ec09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page