Суть в следующем:
Имеется простой бот на pyTelegramBotAPI. Есть база SQLite, в которой для каждой некоей группы хранятся данные, которые необходимо отправить пользователю по запросу.
Алгоритм такой: пользователь инициирует регистрацию себя в группе командой /register, потом отправляет номер группы, которая заносится в shelve-хранилище. После чего уже другой командой получает нужные данные для своей группы.
Вот пример хэндлера сообщений для /register:
@bot.message_handler(commands=['register'])
def register(message):
bot.send_message(message.chat.id, "Please state your group number (looks something like 2xxx).")
group = message.text
match = re.match('2[1-5][1-5][1-5]', group, flags=0)
if len(match)>0 :
bot.send_message(message.chat.id, "Invalid group number, please register again.")
else :
with shelve.open(slocal) as storage:
storage[str(chat_id)] = group
bot.send_message(message.chat.id, "Group updated successfully.")
Как работают хэндлеры сообщений, т.е. как внутри хэндлера последовательно "слушать сообщения"? Например, сейчас тут после команды /register сразу происходит обработка всего блока. Нужно создавать для каждого сообщения отдельный/вложенный хэндлер? Не могу понять каким образом лучше реализовать диалог с клиентом.