@xawifoo

Почему не корректно работает if?

Всем привет!
Столкнулся со следующей проблемой.
Разрабатываю бота для тг, но который работает на прямую с чатом. Использую библиотеку telethon

from telethon import TelegramClient, sync, events
import urllib
import urllib.parse

api_id = 88888
api_hash = '888888888888888888888'

client = TelegramClient("session", api_id, api_hash)
active_msg = 0 

@client.on(events.NewMessage(chats=(374403140)))
async def normal_handler(event):
    if 'Добавить сообщение' in event.raw_text:
        active_msg = 1
        await event.reply('Введите Ваше сообщение')
    elif active_msg == 1:
        active_msg = 0
        await event.reply('Ваше сообщение добавлено')
    elif 'Добавить аккаунт' in event.raw_text:
        await event.reply('Введите номер телефона')
        active_msg = 2
    elif active_msg == 2:
        await event.reply('Аккаунт добавлен')
        active_msg = 0

Логика такова, пользователь пишет: "Добавить сообщение"
Ему текущий аккаунт отправляет сообщение что необходимо ввести сообщение.
После того как пользователь отправить новое сообщение, ему должна отобразиться информация о том, что сообщение успешно добавлено. Но, этого не происходит. К сожалению, но так и не смог понять почему.
  • Вопрос задан
  • 412 просмотров
Решения вопроса 1
@BJlaDuMup
@client.on(events.NewMessage(chats=(374403140)))
async def normal_handler(event):

    global active_msg

    if 'Добавить сообщение' in event.raw_text:
        active_msg = 1
        await event.reply('Введите Ваше сообщение')
    elif active_msg == 1:
        active_msg = 0
        await event.reply('Ваше сообщение добавлено')
    elif 'Добавить аккаунт' in event.raw_text:
        await event.reply('Введите номер телефона')
        active_msg = 2
    elif active_msg == 2:
        await event.reply('Аккаунт добавлен')
        active_msg = 0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы