"""Template simple conversation with bot.""" import asyncio from balebot.filters import * from balebot.handlers import MessageHandler, CommandHandler from balebot.models.messages import * from balebot.updater import Updater from balebot.utils.logger import Logger # Bale Bot Authorization Token updater = Updater(token="d66709ec90fb4683700c8bd701406b8e0fdf54c5", loop=asyncio.get_event_loop()) dispatcher = updater.dispatcher my_logger = Logger.get_logger() # Create a logger and name it my_logger def success_send_message(response, user_data): kwargs = user_data['kwargs'] update = kwargs["update"] user_peer = update.get_effective_user() my_logger.info("Your message has been sent successfully.", extra={"user_id": user_peer.peer_id, "tag": "info"}) def failure_send_message(response, user_data): kwargs = user_data['kwargs'] update = kwargs["update"] user_peer = update.get_effective_user() my_logger.error("Sending message has been failed", extra={"user_id": user_peer.peer_id, "tag": "error"}) @dispatcher.command_handler(["/start"]) def conversation_starter(bot, update): user_peer = update.get_effective_user() my_message = TextMessage("کميته بهداشت و درمان") # Create how many buttons you like with TemplateMessageButton class btn_list = [TemplateMessageButton(text="ورود اطلاعات مددجو حديد", value="jadid", action=0), TemplateMessageButton(text="بروز رساني", value="berooz", action=0)] # Create a Template Message template_message = TemplateMessage(general_message=my_message, btn_list=btn_list) bot.send_message(template_message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message) dispatcher.register_conversation_next_step_handler(update, [MessageHandler(TemplateResponseFilter(keywords=["jadid"]), jadid), MessageHandler(TemplateResponseFilter(keywords=["berooz"]), negative_answer)]) # Use when answer is 'yes' def jadid(bot, update): message=TextMessage("نام مددجو را وارد نماييد") user_peer = update.get_effective_user() bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message) # Use CommandHandler to handle a command which is sent by client dispatcher.register_conversation_next_step_handler(update, # Set Regex pattern for TextFilter [MessageHandler(TextFilter(), ask_bimari), MessageHandler(DefaultFilter(), finish_conversion)]) # Use when answer is 'no' def ask_bimari(bot, update): message = TextMessage("نوع بيماري مددجو را وارد کنيد") user_peer = update.get_effective_user() bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message) dispatcher.register_conversation_next_step_handler(update, MessageHandler(TextFilter(),ask_mahal_sokonat)) def ask_mahal_sokonat(bot, update): message = TextMessage("محل سکونت") user_peer = update.get_effective_user() kwargs = {"message": message, "user_peer": user_peer} bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message, kwargs=kwargs) dispatcher.register_conversation_next_step_handler(update, MessageHandler(TextFilter(),ask_sen )) def ask_sen(bot, update): message = TextMessage("سن") user_peer = update.get_effective_user() kwargs = {"message": message, "user_peer": user_peer} bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message, kwargs=kwargs) dispatcher.register_conversation_next_step_handler(update, MessageHandler(TextFilter(), sabt_madadjo_jadid)) def sabt_madadjo_jadid(bot, update): message = TextMessage("اطلاعات مددجو ثبت شد") user_peer = update.get_effective_user() #name_obj = update.get_effective_message() #bimari = name_obj.text kwargs = {"message": message, "user_peer": user_peer} bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message, kwargs=kwargs) # dispatcher.register_conversation_next_step_handler(update, MessageHandler(DefaultFilter(), finish_conversion)) finish_conversion(bot, update) def negative_answer(bot, update): pass def finish_conversion(bot, update): message = TextMessage("*Thanks* \ngoodbye ;)") user_peer = update.get_effective_user() bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message) # Finish conversation dispatcher.finish_conversation(update) updater.run()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question