You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pyrogram中修改转发消息的文本内容?

Pyrogram修改转发消息文本并保留超链接的解决方案

直接调用forward方法无法修改消息内容,而使用message.text获取内容会丢失超链接等富文本格式——核心原因是超链接的格式信息存储在消息的entities(文本消息)或caption_entities(媒体消息标题)属性中,而非仅存在于纯文本里。

解决步骤及代码示例

  1. 获取原消息内容(区分文本消息和带标题的媒体消息)
  2. 修改文本内容
  3. 按需调整格式实体的偏移量(文本长度变化时必须操作)
  4. 发送消息时传入修改后的文本和对应的实体

基础版(文本长度无变化时)

如果只是替换文本中的部分内容、总长度不变,可以直接复用原实体:

@app.on_message(filters.chat(publics))
def new_channel_post(client, message):
    # 示例:将原文本中的"通知"替换为"紧急通知"
    original_content = message.text or message.caption
    modified_text = original_content.replace("通知", "紧急通知")
    
    # 获取原消息的格式实体
    message_entities = message.entities or message.caption_entities
    
    client.send_message(
        chat_id=private_public,
        text=modified_text,
        entities=message_entities,
        parse_mode=None  # 禁用自动解析,避免格式冲突
    )

进阶版(文本长度变化时)

如果在文本前后添加前缀、后缀导致长度变化,必须调整实体的偏移量,否则超链接会指向错误位置:

@app.on_message(filters.chat(publics))
def new_channel_post(client, message):
    prefix = "【公开频道转发】"
    original_content = message.text or message.caption
    modified_text = f"{prefix}{original_content}"
    
    adjusted_entities = []
    # 处理文本消息的格式实体
    if message.entities:
        for entity in message.entities:
            # 复制原实体并修正偏移量(加上前缀的长度)
            adjusted_entity = entity.copy()
            adjusted_entity.offset += len(prefix)
            adjusted_entities.append(adjusted_entity)
    # 处理媒体消息标题的格式实体
    elif message.caption_entities:
        for entity in message.caption_entities:
            adjusted_entity = entity.copy()
            adjusted_entity.offset += len(prefix)
            adjusted_entities.append(adjusted_entity)
    
    client.send_message(
        chat_id=private_public,
        text=modified_text,
        entities=adjusted_entities,
        parse_mode=None
    )

关键说明

  • 必须传入entities参数才能保留超链接、加粗等富文本格式
  • 设置parse_mode=None是为了避免Pyrogram自动解析文本,导致原有实体格式失效
  • 媒体消息的格式实体存储在caption_entities中,需要和文本消息区分处理

内容的提问来源于stack exchange,提问作者enkrbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:25:18