在回复中获取原始消息的ID和/或内容



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

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

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

问题的澄清

我的代码:

@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()

它确实与异步这是我正在工作的代码示例:-(

@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))

您的代码部分正确,但缺少异步部分。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()

最新更新