@kopatych3756

Как исправить ошибку с подключением к аккаунту и реагирование на сообщения?

Есть такой код. Мне нужна помощь исправить некоторые ошибки. Мой бот должен подключаться к аккаунту и затем ждать когда ему напишут, если сообщение состоит из "Start" тогда он сохраняет следующий отправленный текст и после сообщения "Stop" останавливается и отправляет массив который записал. У меня такая проблема, что вроде бы я должен только один раз ввести номер телефона + код в консоль и он сохранит "Возможность заходить". Но почему то это не так. + к этому я не понимаю почему у меня не реагирует на сообщения. Если кто знает как исправить, помогите пожалуйста(отправьте статью почитать или покажите ошибки). Заранее Спасибо!
from telethon import TelegramClient, sync, events
    
    session = 'connect_account'
    api_id = 0
    api_hash = ''
    
    client = TelegramClient(session, api_id, api_hash)
    
    
    async def main():
        me = await client.get_me()
        print(me.stringify())
    
        flag, a = False, []
    
        @client.on(events.NewMessage)
        async def my_event_handler(event):
            global flag
            if 'Старт' in event.raw_text:
                flag = True
            elif 'Стоп' in event.raw_text:
                flag = False
                del a[0]
                await client.send_message('@name', a)
            if flag:
                a.append(event.raw_text)
    
        await client.run_until_disconnected()
    
    if __name__ == '__main__':
        with client:
            client.loop.run_until_complete(main())
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
в телетоне, насколько я знаю, нужен отдельный метод вызвать чтобы сохранить сессию. и воoбще советую pyrogram.

@client.on(events.NewMessage)
тут по логике вещей должен быть фильтер что отправитель ты сам. По крайней мере в пайрограме такая логика, за телетон не знаю

структура какая-то странная. Я бы создал 2 обработчика команд: старт и стоп соответственно. они переключают флаг.
далее еще один обработчик, на сей раз исходящих сообщений. В нем, если флаг == тру - сохраняем. иначе - афкшим (ничего не даелаем)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы