python_ai_bot/AiBot.py
2025-04-30 17:07:16 +03:00

51 lines
1.9 KiB
Python

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