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'
Release files for ttbotlib 0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ttbotlib-0.13.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ttbotlib-0.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.0 kB
Release files / ttbotlib-0.13.tar.gz
| Download URL | ttbotlib-0.13.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a39a1733a25df2a6de2bc1be46f66f640b93afdff8d2517a9e3785ec2be27405
|
|
BLAKE2b-256 checksum How to use checksums |
fb496f63fd9f096051dd3052f7b08a3b9cd1675c18cc7d775d3748d0c75517ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|
Release files / ttbotlib-0.13-py3-none-any.whl
| Download URL | ttbotlib-0.13-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d3f319344277eb5f6e1c62df0a8d497da49cae2237185b259f753d36039b128f
|
|
BLAKE2b-256 checksum How to use checksums |
88d21b95c946586c3843552716bfef85da93660c7c848c95623ff3f9a8acac9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|