python 中的听众 - 电报
Listener in python - telegram
嗨,我正在处理电报 api 电视节目。这里我想在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))
Telethon 具有记录在案的事件处理程序 here。对于一个基本的新消息处理程序,第一个示例应该这样做:
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()
如果要检查它是否在特定组中,可以在 events.NewMessage
上使用 chats
参数:
@client.on(events.NewMessage(chats=("GroupName", "Group2")))
async def my_event_handler(event):
print(event)
还有很多其他过滤选项,所以我建议查看之前链接的文档。
嗨,我正在处理电报 api 电视节目。这里我想在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))
Telethon 具有记录在案的事件处理程序 here。对于一个基本的新消息处理程序,第一个示例应该这样做:
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()
如果要检查它是否在特定组中,可以在 events.NewMessage
上使用 chats
参数:
@client.on(events.NewMessage(chats=("GroupName", "Group2")))
async def my_event_handler(event):
print(event)
还有很多其他过滤选项,所以我建议查看之前链接的文档。