51 lines
1.9 KiB
Python
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
|