Skip to main content

A little python library for building bots for Express

Project description

pybotx

A little python library for building bots for Express

Travis-CI License Code Style Package version


Introduction

pybotx is a framework for building bots for Express providing a mechanism for simple integration with your favourite web frameworks.

Main features:

  • Simple integration with your web apps.
  • Asynchronous API with synchronous as a fallback option.
  • 100% test coverage.
  • 100% type annotated codebase.

Requirements

Python 3.6+

pybotx use the following libraries:

  • pydantic for the data parts.
  • httpx for making HTTP calls to BotX API.
  • loguru for beautiful and powerful logs.

Installation

$ pip install botx

You will also need a web framework to create bots as the current BotX API only works with webhooks. This documentation will use FastAPI for the examples bellow.

$ pip install fastapi uvicorn 

Example

Let's create a simple echo bot.

  • Create a file main.py with following content:
from botx import Bot, CTS, Message, Status
from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from starlette.status import HTTP_202_ACCEPTED

bot = Bot()
bot.add_cts(CTS(host="cts.example.com", secret_key="secret"))


@bot.default_handler
async def echo_handler(message: Message, bot: Bot):
    await bot.answer_message(message.body, message)


app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.get("/status", response_model=Status)
async def bot_status():
    return await bot.status()


@app.post("/command", status_code=HTTP_202_ACCEPTED)
async def bot_command(message: Message):
    await bot.execute_command(message.dict())
  • Deploy a bot on your server using uvicorn and set the url for the webhook in Express.
$ uvicorn main:app --host=0.0.0.0

This bot will send back every your message.

License

This project is licensed under the terms of the MIT license.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

botx-0.12.1.tar.gz (18.7 kB view hashes)

Uploaded Source

Built Distribution

botx-0.12.1-py3-none-any.whl (24.1 kB view hashes)

Uploaded Python 3

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