From fc8fa5a30bf464557051ac22a75ca83de3a29f7b Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Wed, 29 Jun 2022 17:45:07 +0400 Subject: =?UTF-8?q?=D0=9E=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BA=D0=B5=D0=BB=D0=B5=D1=82=20=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 bot.py (limited to 'bot.py') diff --git a/bot.py b/bot.py new file mode 100644 index 0000000..dfb65b4 --- /dev/null +++ b/bot.py @@ -0,0 +1,52 @@ +from telegram.ext import Updater, CommandHandler, ConversationHandler, MessageHandler, Filters +from telegram import Update, User, Bot # Typing + +from config import TG_TOKEN + +from enums import UtilStates, MainStates +from views import UtilViews, MainStatesView +from keyboards import MenuKeyboard, BACK + +from logger_config import logger + + +def error(bot, update, error): + logger.warning('Update "%s" caused error "%s"', update, error) + + +def main(): + conversation = ConversationHandler( + entry_points=[ + CommandHandler('start', UtilViews.start), + ], + + states={ + UtilStates.WAIT_FOR_USERNAME: [MessageHandler(Filters.text, UtilViews.wait_for_username)], + MainStates.MAIN_MENU: [ + MessageHandler(Filters.regex(MenuKeyboard.NEW_CLIENT), MainStatesView.new_client_name), + MessageHandler(Filters.regex(MenuKeyboard.LIST_CLIENTS), MainStatesView.list_clients), + ], + MainStates.ENTERING_NAME: [ + MessageHandler(Filters.regex(BACK), MainStatesView.main_menu), + MessageHandler(Filters.text, MainStatesView.new_client), + ], + }, + + fallbacks=[ + MessageHandler(Filters.text, UtilViews.fallback), + ] + ) + + + updater = Updater(TG_TOKEN) + + dp = updater.dispatcher + dp.add_error_handler(error) + dp.add_handler(conversation) + + updater.start_polling() + updater.idle() + + +if __name__ == "__main__": + main() -- cgit v1.2.3