Javascript 使用DiscordJS在聊天中获取表情符号图像的最佳方法是什么?
我的主要目标是能够运行一个小命令,比如,Javascript 使用DiscordJS在聊天中获取表情符号图像的最佳方法是什么?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我的主要目标是能够运行一个小命令,比如,$yoink,它将获取聊天中最后发送的表情符号,并将其制作成我可以下载的图像。我已经有了类似的东西,但它只检测常规图像和嵌入图像(使用它使我的机器人具有Jimp功能) 以下是我目前掌握的情况: 异步函数GetImageFromMsg(msg){ var-imageUrl=null; const urlsnifferpattern=/(https?:\/\/[^\s]+\(?:png | jpg | jpeg | bmp | gif | tiff | web
$yoink
,它将获取聊天中最后发送的表情符号,并将其制作成我可以下载的图像。我已经有了类似的东西,但它只检测常规图像和嵌入图像(使用它使我的机器人具有Jimp功能)
以下是我目前掌握的情况:
异步函数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(urlsifferpattern))//用户直接上传到聊天室。
imageUrl=getImg.url;
if(msg.content&&(getImg=msg.content.match(urlsifferpattern))//首先在此处避免在接下来的两次检查中出现缓存问题。
imageUrl=getImg[0]。替换(“>”,“”);
if(msg.embeds&(getImg=msg.embeds.find(val=>val.thumboil&&val.thumboil.url))//仅在机器人制作的嵌入上显示小图像-(小??>)链接制作的嵌入上显示大图像-无嵌入的随机图像url。
imageUrl=getImg.thumboil.url;
if(msg.embeds&(getImg=msg.embeds.find(val=>val.image&&val.image.url))///机器人制作的嵌入上的大图像。
imageUrl=getImg.image.url;
如果(!imageUrl)
返回null;
返回imageUrl;
}
我应该如何添加对抓取表情符号的支持?您可以检查邮件中是否包含任何带有正则表达式的表情符号 这里有一个方法(它的Python,但RegEx到处都是垃圾)和另一个详细解释Discord如何处理emojis 要获得普通图像,首先需要使用
client.emojis.find(emoji=>emoji.name==“emoji_name”);
然后,通过将id插入此url,您可以继续获取普通图像:
函数getEmoji(id){
var linkToMyEmoji=`https://cdn.discordapp.com/emojis/${id}.png`
// ...
}
希望这能对您有所帮助:)我知道这是一个愚蠢的问题,但是,在哪里放置此代码最合适?它应该放在命令结构中还是放在我的数组列表之外?因此,如果你把它放在命令结构之外,你可能需要像我在示例代码中所做的那样为函数提供一些参数(例如id或更多)。然后,您需要做的唯一一件事就是返回链接(或者其他东西,取决于您的用例)。如果您只想拥有url,而不想对它做任何花哨的事情,那么最好将其写入您的命令结构中。但是就像我说的,这取决于你的用例。谢谢你的帮助!