【问题标题】:What would be the best method to get images of emoji in chat using DiscordJS?使用 DiscordJS 在聊天中获取表情符号图像的最佳方法是什么?
【发布时间】:2021-01-09 23:40:56
【问题描述】:

我的主要目标是能够运行一个小命令,例如$yoink,它将获取聊天中最后发送的表情符号并将其制作成我可以下载的图像。我已经有了类似 的东西,但是它只检测常规图像和嵌入图像(使用它来让我的机器人使用 Jimp 功能) 这是我目前所拥有的:

async function GetImageFromMsg(msg) {
    var imageUrl = null;
    const urlsnifferpattern = /(https?:\/\/[^\s]+\.(?:png|jpg|jpeg|bmp|gif|tiff|webp)(?:$|[^\s]+))/i;

    if (msg.attachments && (getImg = msg.attachments.find(val => val.height && val.url)) && getImg.url.match(urlsnifferpattern)) // user uploads directly to chat.
        imageUrl = getImg.url;
    if (msg.content && (getImg = msg.content.match(urlsnifferpattern))) // Here first to avoid caching issues on the next two checks.
        imageUrl = getImg[0].replace(">", "");
    if (msg.embeds && (getImg = msg.embeds.find(val => val.thumbnail && val.thumbnail.url))) // small image ONLY on  bot-made embeds - (small??>)big image on LINK-made embeds - random image URLS with no embeds.
        imageUrl = getImg.thumbnail.url;
    if (msg.embeds && (getImg = msg.embeds.find(val => val.image && val.image.url))) // big image on bot-made embeds.
        imageUrl = getImg.image.url;

    if (!imageUrl)
        return null;

    return imageUrl;
}

我应该如何添加支持来抓取表情符号?

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    您可以检查您的消息是否包含任何带有正则表达式的表情符号。

    这里有一个example 怎么做(它的 Python,但 RegEx 到处都是一样的垃圾),另一个详细的解释可以找到不和谐处理表情符号here

    要获取纯图像,您需要先获取 emoji id

    client.emojis.find(emoji => emoji.name === "emoji_name");
    

    然后您可以通过将 id 插入此 url 来继续获取纯图像:

    function getEmoji(id){
       var linkToMyEmoji = `https://cdn.discordapp.com/emojis/${id}.png`
       // ...
    }
    

    希望对你有帮助:)

    【讨论】:

    • 我知道这是一个愚蠢的问题,但是,放置这段代码的最佳位置是哪里?它应该放在命令结构中还是放在我的数组列表之外?
    • 所以如果你把它放在你的命令结构之外,你可能需要像我在示例代码中那样为函数提供一些参数(例如 id 或更多)。那么您唯一需要做的就是返回链接(或其他内容,取决于您的用例)这进入你的命令结构。但就像我说的,这取决于你的用例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多