def handle_message(self, bot, update):
print("Received", update.message)
chat_id = update.message.chat_id
if update.message.text == "/start":
# ???? ???????? ??????? /start, ???????? ??? ? ?????? -- ???
# ????? ??????? ????????? ???????? ??????, ???? ??? ????
self.handlers.pop(chat_id, None)
if chat_id in self.handlers:
# ???? ?????? ??? ?????, ?? ???? ???????????? .send(), ?????
# ???????? ? ????????? ????? ????????????
try:
answer = self.handlers[chat_id].send(update.message)
except StopIteration:
# ???? ??? ???? ????????? ?????????? -- ??? ??????, ???????? ??????? ? ??????
del self.handlers[chat_id]
# (???????? ?????????, ???? ????? ????? ??????, ??? ???????????? ? ???? ???????)
return self.handle_message(bot, update)
else:
# ?????? ?????? ??????????. defaultdict ???????? ????? ????????? ??? ?????
# ??????, ? ?? ?????? ????? ??????? ?????? ????????? ? ??????? .next()
# (.send() ??????????? ?????? ????? ??????? yield)
answer = next(self.handlers[chat_id])
# ?????????? ?????????? ????? ????????????
print("Answer: %r" % answer)
self._send_answer(bot, chat_id, answer)
评论列表
文章目录