Skip to main content

A python library for various chat services

Project description

bokkichat

master develop
build status build status

Logo

Bokkichat is a python library that offers unified interfaces for interacting with different chat services.

As an example, it could be used to write a bot for both Whatsapp and Telegram without many service-specific alterations.

A project that extends this idea is kudubot.

Implemented Connection Types

Currently the following connection types are supported out of the box:

  • CLI
  • Telegram (Bot)

Installation

Installing bokkichat is as simple as running pip install bokkichat, or python setup.py install when installing from source.

Usage

First, you'll need to initialize the correct Settings object, which can then be used to initialize the Connection.

from bokkichat.settings.impl.TelegramBotSettings import TelegramBotSettings
from bokkichat.connection.impl.TelegramBotConnection import TelegramBotConnection

settings = TelegramBotSettings("APIKEY")
connection = TelegramBotConnection(settings)

Afterwards, you can send, receive and loop using the Connection object.

Some examples:

# Sending a message
from bokkichat.settings.impl.TelegramBotSettings import TelegramBotSettings
from bokkichat.connection.impl.TelegramBotConnection import TelegramBotConnection
from bokkichat.entities.message.TextMessage import TextMessage
from bokkichat.entities.Address import Address

settings = TelegramBotSettings("APIKEY")
connection = TelegramBotConnection(settings)

receiver = Address("12345678")
msg = TextMessage(connection.address, receiver, "BODY", "TITLE")

connection.send(msg)
# Echo every received message
from bokkichat.settings.impl.TelegramBotSettings import TelegramBotSettings
from bokkichat.connection.impl.TelegramBotConnection import TelegramBotConnection
from bokkichat.connection.Connection import Connection
from bokkichat.entities.message.Message import Message

settings = TelegramBotSettings("APIKEY")
connection = TelegramBotConnection(settings)


def echo(con: Connection, msg: Message):
    reply = msg.make_reply()
    con.send(reply)

connection.loop(echo)

Implementing your own connection type

If the connection type you want to use is not implemented by bokkichat itself, you can always implement it yourself. To do so, you will need to implement two classes.

First off, you'll need to implement a subclass of the Settings class and implement its abstract methods. Take a look at the implementation of various Settings classes here for some inspiration.

The Settings class defines the authentication information required for the bot to function.

Afterwards, a subclass of the Connection class must be implemented. Again, implement the abstract methods and let yourself be inspired by previous implementations

The Connection class defines how to communicate with the service itself.

These two classes define everything that's needed for a bokkichat connection.

Further Information

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

bokkichat-0.4.3.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

bokkichat-0.4.3-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file bokkichat-0.4.3.tar.gz.

File metadata

  • Download URL: bokkichat-0.4.3.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for bokkichat-0.4.3.tar.gz
Algorithm Hash digest
SHA256 d4440e63ebe8be46202fc48dacf3b24ccb2cf0264e0640e842e71b97239e3e9b
MD5 942e37d95939e7e253eaed473696afa7
BLAKE2b-256 284169f696bef7b96b0c1d40e048be83683fcb9d9941d04cd3c49dccf0e57d0a

See more details on using hashes here.

File details

Details for the file bokkichat-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: bokkichat-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for bokkichat-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e7862520d5664f36aa48dc31235b3978b56e8912c6aa2ce7fbedc27d3d123ebf
MD5 e77cb111da5b1a335e4c1d72a5718f35
BLAKE2b-256 d9c13fdad57890c32d831a81c8901b6c3a2f977f09d8adb5b8f46aa605e800bb

See more details on using hashes here.

Supported by

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