Skip to content

Commit 5343369

Browse files
Petr E. AntonovPetr E. Antonov
authored andcommitted
Loading user_data from Redis
1 parent 904ecec commit 5343369

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

tg_bot.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,15 @@ def error(bot, update, error):
8888
logger.warning('Update "%s" caused error "%s"', update, error)
8989

9090

91+
def init_user_data(bot, update, user_data):
92+
chat_id = update.message.chat_id
93+
if r.get(chat_id):
94+
user_data = json.loads(r.get(chat_id))
95+
return user_data
96+
97+
9198
def handle_new_question_request(bot, update, user_data):
99+
user_data = init_user_data(bot, update, user_data)
92100
user_data['chat_id'] = update.message.chat_id
93101
update.message.reply_text('Отправляем новый вопрос')
94102
user_data['quest'] = get_random_question(data)
@@ -107,10 +115,10 @@ def handle_new_question_request(bot, update, user_data):
107115

108116
def handle_solution_attempt(bot, update, user_data):
109117
text = update.message.text
110-
update.message.reply_text(text)
118+
user_data = init_user_data(bot, update, user_data)
111119
chat_id = user_data['chat_id']
112120
if r.get(chat_id):
113-
quest = json.loads(r.get(chat_id))['quest']
121+
quest = user_data['quest']
114122
answer = quest['Ответ'][0]
115123
desc = quest['Ответ'][1]
116124
if 'score' in user_data:
@@ -132,7 +140,9 @@ def handle_solution_attempt(bot, update, user_data):
132140

133141
# Сдаться
134142
def giveup(bot, update, user_data):
135-
quest = user_data['quest']
143+
user_data['chat_id'] = update.message.chat_id
144+
chat_id = user_data['chat_id']
145+
quest = json.loads(r.get(chat_id))['quest']
136146
answer = quest['Ответ'][0]
137147
desc = quest['Ответ'][1]
138148
update.message.reply_text('Вы сдались')
@@ -144,6 +154,7 @@ def giveup(bot, update, user_data):
144154

145155
# Мой счет
146156
def score(bot, update, user_data):
157+
user_data =init_user_data(bot, update, user_data)
147158
if 'score' in user_data:
148159
score = user_data['score']
149160
else:
@@ -169,7 +180,10 @@ def start_bot(token, data):
169180
pass_user_data=True
170181
),
171182
RegexHandler('^Сдаться$', giveup, pass_user_data=True),
172-
RegexHandler('^Мой счет$', score, pass_user_data=True)
183+
RegexHandler('^Мой счет$', score, pass_user_data=True),
184+
MessageHandler(Filters.text,
185+
handle_solution_attempt,
186+
pass_user_data=True),
173187
],
174188

175189
states={

0 commit comments

Comments
 (0)