from telegram import Update
from telegram import (ReplyKeyboardMarkup, ReplyKeyboardRemove)
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters,
ConversationHandler)
NAME, GENDER, AGE = 0, 0, 0
user_data = {}
def start_handler(update: Update, context):
update.message.reply_text(
"Введите ваше имя",
reply_markup=ReplyKeyboardRemove(),
)
return NAME
def name_handler(update: Update, context):
user_data[NAME] = update.message.text
update.message.reply_text("Введите пол")
return GENDER
def age_handler(update: Update, context):
user_data[GENDER] = update.message.text
update.message.reply_text("Введите возраст")
return AGE
def finish_handler(update: Update, context):
user_data[AGE] = update.message.text
update.message.reply_text(f"registered successfully, you are {user_data[NAME]}, {user_data[GENDER]}, "
f"{user_data[AGE]}")
return ConversationHandler.END
def cancel_handler(update: Update, context):
print("bye")
def main():
updater = Updater(
token="token",
use_context=True,
)
dp = updater.dispatcher
conv_handler = ConversationHandler(
entry_points=[
CommandHandler("start", start_handler),
],
states={
NAME: [MessageHandler(Filters.all, name_handler)],
GENDER: [MessageHandler(Filters.all, age_handler)],
AGE: [MessageHandler(Filters.all, finish_handler)]
},
fallbacks=[CommandHandler("cancel", cancel_handler)],
)
dp.add_handler(conv_handler)
updater.start_polling()
updater.idle()
main()
