pararam.io bot framework
Project description
INSTALL
Install bot-server based on ASGI API and ASGI-base webserver (for example https://www.uvicorn.org/)
$ pip install ttbot
$ pip install uvicorn
CODE
Create bot.py
from ttbot.server import Action, Post, Request, Server
class MyBot(Server):
async def message_handler(self, post: Post) -> str:
''' Called when bot mentioned in post, return text will be published as reply post '''
post.user_id # int, who send post
post.chat_id # int, in what chat
post.post_no # int, post number
post.text # str, post text
post.team_id # int, if chat from team
post.reply_no # int, if post has reply to other post (number)
post.reply_text # str, if post has reply to other post (text)
return f'Received {post}'
async def action_handler(self, action: Action) -> dict:
''' Called when user clicks on bot action link or button '''
action.action # str, action name
action.params # dict, params of action
action.post # Post, post which attached action
action.user_id # int, who send post
action.post.user_id # 0
action.post.chat_id # int, in what chat
action.post.post_no # int, post number
action.post.text # ''
action.post.team_id # int, if chat from team
return {'action': str(action)}
async def api_handler(self, request: Request) -> dict:
''' Web server for bot local aims '''
request.method # str, HTTP method
request.path # str, HTTP path
request.query # dict, parsed HTTP url query string
request.headers # dict, parsed HTTP headers
request.data # dict, parsed json from HTTP body
return {'request': str(request)}
app = MyBot()
RUN
SECRET given when bot created
SECRET=123 uvicorn example.app:app
SECRET=123 API_HOST=ruapi.pararam.io uvicorn example.app:app
API
АПИ для получения сообщений боту (подписан pararam)
curl -XPOST -d '{"user_id": 1, "chat_id": 2, "post_no": 3, "text": "text"}' 'http://localhost:8000/bot'
АПИ действий бота (для кнопок, подписан pararam)
curl -XPOST -d '{"user_id": 1, "chat_id": 2, "post_no": 3, "action": "submit", "params": {}}' 'http://localhost:8000/act'
Собственное АПИ бота для не связанных с pararam операций
curl -XPOST -d '{"a":1}' 'http://localhost:8000/api?s=1&s=2'
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ttbotlib-0.13.tar.gz.
File metadata
- Download URL: ttbotlib-0.13.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a39a1733a25df2a6de2bc1be46f66f640b93afdff8d2517a9e3785ec2be27405
|
|
| MD5 |
ade6f5d347421d4f5479fbb8ff58188f
|
|
| BLAKE2b-256 |
fb496f63fd9f096051dd3052f7b08a3b9cd1675c18cc7d775d3748d0c75517ff
|
File details
Details for the file ttbotlib-0.13-py3-none-any.whl.
File metadata
- Download URL: ttbotlib-0.13-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3f319344277eb5f6e1c62df0a8d497da49cae2237185b259f753d36039b128f
|
|
| MD5 |
f0f6270c6a34f698f1bf1b7fbf037906
|
|
| BLAKE2b-256 |
88d21b95c946586c3843552716bfef85da93660c7c848c95623ff3f9a8acac9b
|