如何正确读取邮件中的附件网址?

时间:2018-04-30 19:31:47

标签: javascript node.js discord.js

我想让它在有人发送图像或发送图像链接时读取,如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) 
}

1 个答案:

答案 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(" ")}`)