-
Notifications
You must be signed in to change notification settings - Fork 0
/
anketa.py
51 lines (44 loc) · 2.02 KB
/
anketa.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from telegram import ParseMode, ReplyKeyboardMarkup, ReplyKeyboardRemove
from telegram.ext import ConversationHandler
from utils import main_keyboard
def anketa_start(update, context):
update.message.reply_text(
"Привет, как вас зовут?",
reply_markup=ReplyKeyboardRemove()
)
return "name"
def anketa_name(update, context):
user_name = update.message.text
if len(user_name.split()) < 2:
update.message.reply_text("Пожалуйста введите имя и фамилию")
return "name"
else:
context.user_data["anketa"] = {"name": user_name}
reply_keyboard = [["1", "2", "3", "4", "5"]]
update.message.reply_text(
"Пожалуйста оцените нашего бота от 1 до 5",
reply_markup=ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True)
)
return "rating"
def anketa_rating(update, context):
context.user_data['anketa']['rating'] = int(update.message.text)
update.message.reply_text("Напишите комментарий, или нажмите /skip чтобы пропустить")
return "comment"
def anketa_comment(update, context):
context.user_data['anketa']['comment'] = update.message.text
user_text = format_anketa(context.user_data['anketa'])
update.message.reply_text(user_text, reply_markup=main_keyboard(), parse_mode=ParseMode.HTML)
return ConversationHandler.END
def anketa_skip(update, context):
user_text = format_anketa(context.user_data['anketa'])
update.message.reply_text(user_text, reply_markup=main_keyboard(), parse_mode=ParseMode.HTML)
return ConversationHandler.END
def format_anketa(anketa):
user_text = f"""<b>Имя Фамилия</b>: {anketa['name']}
<b>Оценка</b>: {anketa['rating']}
"""
if 'comment' in anketa:
user_text += f"\n<b>Комментарий</b>: {anketa['comment']}"
return user_text
def anketa_dontknow(update, context):
update.message.reply_text("Я вас не понимаю")