我想让它在有人发送图像或发送图像链接时读取,如Imgur,然后将附件网址记录到频道。
我尝试过使用if(message.attachments.length > 0 || message.content.includes(message.attachments))
,但这似乎绝对没有。我查看了discord.js,它说MessageAttachments是一个消息中所有附件的集合,所以我试图解决它,然后让它将集合输出到一个消息中,但似乎也没有做任何事情。没有错误或任何东西。
这是我发送图像时的完整代码。
if(message.attachments.length > 0 || message.content.includes(message.attachments)){
var promise1 = Promise.resolve(message.attachments);
promise1.then(function(value) {
client.channels.find("name","picture-log").send(value)
});
//var att = new MessageAttachment();
//client.channels.find("name","picture-log").send(`${message.author.tag} sent an embed of` + att.url)
}
答案 0 :(得分:0)
嗯message.attachments
确实会返回图片或文件,但仅直接上传到Discord的内容。
因此,如果您要过滤网址,则需要使用message.content
,然后找到带有正则表达式的链接或类似内容。
我试图为此制作一个正则表达式(可能不完美但应该有效):
function imgurLinks (message) {
return message.match(/https?:\/\/(www.|i.|)imgur\.com[^\s]+/g);
}
var links = imgurLinks("hey take a look at this: https://i.imgur.com/ecSWPgA.png");
console.log(links);

该函数返回一个imgur链接数组,从那里只看到有多少链接(如果有的话)并做一些事情。如果有的话。
client.channels.find("name","picture-log")
.send(`${message.author.tag} sent imgur links: ${links.join(" ")}`)