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

Discord.py/rewrite 放大emoji命令如何实现默认emoji支持?

实现方案

现有代码的问题是默认Unicode emoji会被discord.py解析为str类型,直接触发报错分支,按以下步骤调整即可支持默认emoji放大:

  • 安装emoji校验依赖:pip install emoji
  • 调整命令逻辑,对str类型的输入先做emoji合法性校验,合法则拼接对应的高清图片地址返回,不合法再抛出提示

修改后的完整代码如下:

import typing
import emoji
import discord
from discord.ext import commands

@commands.command()
async def enlarge(self, ctx, emoji: typing.Union[discord.Emoji, discord.PartialEmoji, str]):
    # 自定义/服务器emoji直接返回原有地址
    if isinstance(emoji, (discord.Emoji, discord.PartialEmoji)):
        return await ctx.send(emoji.url)
    # 校验是否为合法默认Unicode emoji
    if emoji.is_emoji(emoji):
        # 提取emoji对应的Unicode码点,多码点用横杠连接
        code_points = '-'.join(f'{ord(char):x}' for char in emoji)
        # 拼接高清emoji图片地址
        enlarge_url = f'https://twemoji.maxcdn.com/v/latest/72x72/{code_points}.png'
        return await ctx.send(enlarge_url)
    # 输入非有效emoji时抛出提示
    await ctx.reply('请输入有效的emoji进行放大!')

注意事项

  • 若机器人部署在国内,可将Twemoji的CDN地址替换为国内可正常访问的emoji镜像源,提升加载速度
  • 遇到特殊组合类emoji加载失败时,可在码点拼接逻辑中过滤掉FE0F这类变体选择符后再尝试生成地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:39:05