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

如何使用Discord.py Bot移除特定消息中的指定链接预览?

解决Discord.py Bot移除已发消息中Twitter链接预览的问题

核心思路

Discord里用<>包裹链接会阻止生成预览,我们可以通过编辑原消息的方式,把消息内的Twitter链接替换为带<>的格式,不用删除重发。

实现步骤与代码示例

  1. 定位目标消息:通过消息ID、频道历史检索等方式找到需要修改的消息。
  2. 替换链接格式:用正则匹配消息里的Twitter/x链接,改成<链接>的格式。
  3. 编辑原消息:调用message.edit()更新内容,Discord会自动移除链接预览。
import discord
import re

# 假设已完成Bot客户端初始化
@client.command()
async def remove_twitter_preview(ctx, message_id: int):
    try:
        # 获取目标消息
        message = await ctx.channel.fetch_message(message_id)
        # 匹配Twitter/x链接(兼容twitter.com和x.com域名)
        modified_content = re.sub(
            r'(https?://(twitter|x)\.com/\S+)',
            r'<\1>',
            message.content
        )
        # 执行消息编辑
        await message.edit(content=modified_content)
        await ctx.send("已成功移除Twitter链接预览")
    except discord.NotFound:
        await ctx.send("未找到指定消息")
    except discord.Forbidden:
        await ctx.send("Bot无权限编辑该消息")

权限说明

  • 编辑Bot自己发的消息:不需要额外权限。
  • 编辑其他用户发的消息:Bot需要拥有manage_messages权限。

注意事项

  • 正则表达式可根据需求调整,确保覆盖所有可能的Twitter/x链接格式。
  • 编辑消息后,原消息的发送时间不会改变,仅内容更新,完全避免删除重发的繁琐操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:37:05