在回复中获取原始邮件的ID和/或内容

2024-04-25 12:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个脚本来分析一个电报频道

我想在频道回复前一条消息时获取原始消息的event.id或event.text

当然,我查阅了文档,但我无法弄清楚

Clarification of the question

我的代码:

@telegram_client.on(events.NewMessage(chats=testchannel))
def new_message_testchannel(event):
    message_raw_text = event.raw_text
    if event.is_reply:
        print('Reply')
        # Get original message ID and or content
        message_raw_text_reply = event.get_message_reply()
        # or
        message_raw_text_reply = event.get_message_reply().raw_text
        # or
        message_raw_text_reply = event.get_message_reply().id
        print(message_raw_text_reply)
    else:
        print('Normal message: ', message_raw_text)


telegram_client.start()
telegram_client.run_until_disconnected()

Tags: ortext脚本clienteventid消息message
2条回答

它确实与异步有关 下面是我正在工作的代码示例:-)

@telegram_client.on(events.NewMessage(chats=testchannel))
async def new_message_testchannel(event):
    message_raw_text = event.raw_text
    if event.is_reply:
        print(event.id)
        reply = await event.get_reply_message()
        reply_raw_text = reply.raw_text
        reply_id = reply.id
        print('Is reply')
        print(reply_raw_text, reply_id)
        print(type(reply))

您的代码部分正确,但缺少asyncio部分。 Telethon是一个异步库,因此需要等待所有网络调用

@telegram_client.on(events.NewMessage(chats=testchannel))
async def new_message_testchannel(event):
    message_raw_text = event.raw_text
    if event.is_reply:
        print('Reply')
        # Get original message ID and or content
        message_reply = await event.get_message_reply()
        # or
        message_raw_text_reply = message_reply.raw_text
        # or
        message_id_reply = message_reply.id
        print(message_raw_text_reply)
        print(message_id_reply )
    else:
        print('Normal message: ', message_raw_text)


telegram_client.start()
telegram_client.run_until_disconnected()

相关问题 更多 >

    热门问题