Python中的侦听器-电报

vin*_*nod 1 python telegram telethon

嗨,我正在电报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))
Run Code Online (Sandbox Code Playgroud)

Tul*_*lir 5

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()
Run Code Online (Sandbox Code Playgroud)

如果要检查它是否在特定组中,可以在chats上使用参数events.NewMessage

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

还有许多其他过滤选项,因此我建议您查阅前面链接的文档。