-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathanketa.py
More file actions
64 lines (49 loc) · 2.37 KB
/
anketa.py
File metadata and controls
64 lines (49 loc) · 2.37 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
from telegram import ParseMode, ReplyKeyboardMarkup, ReplyKeyboardRemove
from telegram.ext import ConversationHandler
from db import db, get_or_create_user, save_anketa
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 = get_or_create_user(db, update.effective_user, update.message.chat.id)
save_anketa(db, user['user_id'], context.user_data['anketa'])
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 = get_or_create_user(db, update.effective_user, update.message.chat.id)
save_anketa(db, user['user_id'], context.user_data['anketa'])
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("Я вас не понимаю")