from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, ReplyKeyboardMarkup, ReplyKeyboardRemove from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, ConversationHandler, MessageHandler, \ ChatMemberHandler, filters, ApplicationBuilder from ai_bot.handlers.ImageHandler import ImageHandler from ai_bot.handlers.MainHandler import MainHandler from ai_bot.handlers.ModelHandler import ModelHandler from ai_bot.handlers.VideoHandler import VideoHandler from bot import config, FIRST, SECOND from ai_bot import states class AiBot: def run(self): TOKEN = config['TELEGRAM_TOKEN'] application = ApplicationBuilder().token(TOKEN).build() app_states = { # словарь состояний разговора, возвращаемых callback функциями FIRST: [ CallbackQueryHandler(MainHandler.get_menu, pattern='^menu'), CallbackQueryHandler(VideoHandler.create_video, pattern='^create_video'), CallbackQueryHandler(ImageHandler.create_img, pattern='^create_img'), ], SECOND: [ CallbackQueryHandler(ImageHandler.start_model_scenario, pattern='^start_model_scenario?\S{3,}'), ], } app_states.update(states) conv_handler = ConversationHandler( entry_points=[ CommandHandler('start', MainHandler.start), CommandHandler('menu', MainHandler.get_menu) ], states=app_states, fallbacks=[CommandHandler('start', MainHandler.start)], ) application.add_handler(conv_handler) text_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), self.text_msg) application.add_handler(text_handler) application.run_polling() def text_msg(self, update, context): pass