Слушатель в питоне - телеграмма

Привет, я работаю Telegram API-Telethon. Здесь я хотел постоянно слушать групповые сообщения в коде Python.

Я могу читать сообщения от группы, но каждый раз, когда мне нужно запустить код. Есть ли способ реализовать это, что мой код должен слушать сообщение синхронно.

ниже приведены фрагменты кода, которые дают мне сообщения в группе. нужно добавить код слушателя в нем.

client = TelegramClient('session_read', api_id, api_hash)
client.start()

dialog_count = 50
dialogs = client.get_dialogs(dialog_count)
for i, entity in enumerate(dialogs):

    if entity.name == 'GroupName':
     print('{}'.format(entity.message.message))

1 ответ

Решение

Telethon имеет обработчики событий, как описано здесь. Для базового нового обработчика сообщений первый пример должен сделать:

from telethon import TelegramClient, events

client = TelegramClient('session_read', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
    print('{}'.format(event))

client.start()
client.run_until_disconnected()

Если вы хотите проверить, что он входит в определенную группу, вы можете использовать chats параметр на events.NewMessage:

@client.on(events.NewMessage(chats=("GroupName", "Group2")))
async def my_event_handler(event):
    print(event)

Есть также много других вариантов фильтрации, поэтому я рекомендую ознакомиться с ранее указанной документацией.

Другие вопросы по тегам