@@ -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+
9198def 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
108116def 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# Сдаться
134142def 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# Мой счет
146156def 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