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 list
orvalue: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 (update
andcontext
). It can return adict
or alist
for 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 (update
andcontext
). 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. {State
orState 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)
update
andcontext
: from telegram bot function. {Telegram.update
andTelegram.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.