A python module to auto build conversation for a Telegram bot
Project description
Setup
pip3 install telegram-autoconv
Requirements
- Python 3.8
Import
from autoconv.state import State
from autoconv.conversation import Conversation
from autoconv.autoconv_handler import AutoConvHandler
Documentation
I know you want examples, in fact there is a beautiful folder with some examples.
But here, you can find a little documentation.
State
State(name,message,type=int,parse_mode=None,back=False,webpage_preview=False)
name: State name (and key for data dictionary). {str}message: message you want to print in that state. {str}type: data type. {type}parse_mode: Telegram message parse mode. {Telegram.parse_mode}back: enable back button. {bool}webpage_preview: enable webpage preview in the state message. {bool}
# callback handler
add_keyboard(keyboard,size=None,max_row=3)
keyboard: inline keyboard. Can be a dict (with custom value as key) or a list (default int value as key). {name listorvalue:name dict}size: size for each row of the keyboard. {int tuple}max_row: total values in a row, ignored if size is specified. {int}
# callback handler
add_dynamic_keyboard(function,max_row=3)
function: function must have two parameters (updateandcontext). It can return adictor alistfor a keyboard. Called when its state is reached. {func}max_row: total values in a row. {int}
# text handler
add_text(regex=None,error_message=None)
regex: regex for input text. {str}error_message: error message when regex fails. {str}
# function to execute in this state
add_action(function)
function: function must have two parameters (updateandcontext). It can return astr, repleacing 3@(@@@) in the message. Called when its state is reached. {func}
Conversation
Conversation(start_state,end_state=None)
start_state: first State of the conversation. {State}end_state: if exists, final State of the conversation. {State}
# add state to the conversation
add_state(State)
State: Add a State or a list of State to the conversation. {StateorState list}
# add state to the conversation
add_route(state,ruotes=None,default=None,back=None)
state: initial State of the ruote. {State}routes: routes where a state should go for every possibile data received. {value:State dict}default: default route if value isn't in ruotes. {State}back: route to go when the back button is pressed. {State}
AutoConvHandler
AutoConvHandler(conversation,telegram_state,back_button='Back')
conversation: conversation to handle. {Conversation}telegram_state: Telegram state name to handle callback, text and other things. {Telegram.handler}back_button: placeholder for back button. {str}
# manage conversation with update and context
manage_conversation(update,context)
updateandcontext: from telegram bot function. {Telegram.updateandTelegram.context}
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
File details
Details for the file telegram-autoconv-0.0.20.tar.gz.
File metadata
- Download URL: telegram-autoconv-0.0.20.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7956b4b66643b3e7a6a240c5b2e169d9f3eb544e53ac8b765d1abd395771c970
|
|
| MD5 |
76ad9ca5be429bc52b0cfed212a99809
|
|
| BLAKE2b-256 |
affc7e8a20e44014a6544fcf25079de2fee7eddf164034db03d7e03ba6f56f0c
|