Pyrogram消息转发函数需求:完整转发含多媒体的原始消息
解决Pyrogram完整转发所有消息内容的问题
你的原始代码仅处理文本消息且只转发文本内容,要实现完整转发包括多媒体在内的所有消息,只需要做两处关键修改:
修改后的代码示例(保留转发标记)
from pyrogram import Client, filters from pyrogram.types import Message # 假设INPUT_CHANNELS和DESTINATION_CHANNEL已提前定义 INPUT_CHANNELS = [-100XXXXXXXXX] DESTINATION_CHANNEL = -100YYYYYYYYY @bot.on_message(filters.chat(INPUT_CHANNELS)) def forward_full_message(client: Client, message: Message): # 使用forward_message完整转发所有类型消息,保留转发来源标记 client.forward_message( chat_id=DESTINATION_CHANNEL, from_chat_id=message.chat.id, message_id=message.message_id )
无痕转发版本(不显示转发来源)
如果不需要显示“转发自”的标记,可以用copy_message方法:
@bot.on_message(filters.chat(INPUT_CHANNELS)) def copy_full_message(client: Client, message: Message): client.copy_message( chat_id=DESTINATION_CHANNEL, from_chat_id=message.chat.id, message_id=message.message_id )
关键修改说明
- 移除
filters.text过滤器:原来的过滤器只触发文本消息,移除后可以接收所有类型的消息(图片、视频、音频、文档、贴纸等) - 替换
send_message为专用转发方法:forward_message:完全模拟手动转发的效果,保留原始消息的所有属性和转发标记copy_message:复制原始消息的内容但不显示转发来源,适合需要“原生发送”效果的场景
内容的提问来源于stack exchange,提问作者Nghia Le
相关产品推荐
相关产品推荐

