Вы можете использовать переменную состояния для хранения текущего состояния бота и переключать его между функциями в зависимости от условия. Например, если бот находится в состоянии "дерево", то он будет вызывать функцию для работы с этим состоянием, а если он находится в состоянии "цветок", то будет вызывать функцию для работы с этим состоянием. Вот пример кода:
state = {}
def handle_message(message):
chat_id = message.chat.id
if message.text == "🌳Дерево🌳":
state[chat_id] = "tree"
tree(message)
elif message.text == "🌷Цветок🌷":
state[chat_id] = "flower"
flower(message)
else:
if chat_id in state:
if state[chat_id] == "tree":
# обрабатываем сообщение в состоянии "дерево" tree_message(message)
elif state[chat_id] == "flower":
# обрабатываем сообщение в состоянии "цветок" flower_message(message)
else:
# если состояние не определено, то обрабатываем сообщение по умолчанию
default_message(message)
else:
# если состояние еще не определено, то обрабатываем сообщение по умолчанию
default_message(message)
Здесь мы сохраняем состояние каждого чата в словаре
state
Когда пользователь отправляет сообщение с ключевым словом "Дерево", мы сохраняем состояние "tree" в словаре и вызываем соответствующую функцию
tree()
Если пользователь отправляет другое сообщение, мы проверяем, находится ли он в каком-то состоянии. Если да, то мы вызываем соответствующую функцию для обработки сообщения в этом состоянии. Если нет, то мы вызываем функцию по умолчанию.