如何制作基本上嵌入链接网站的机器人?

时间:2020-10-10 10:54:05

标签: javascript web discord discord.js embed

我已经制造了几个不和谐的机器人,但我仍然是一个新手,我想知道如何制作一个可以嵌入任何网站的机器人(有点像YouTube嵌入视频但带有文本)以及嵌入网站的多模式元素),该元素会在漫游器前缀和命令“ site”之后发布。我不知道如何使机器人对刺激做出反应,而且我不确定嵌入如何起作用。我只是希望能够做到这一点,以便任何用户都可以输入不和谐的=site *Enter URL here*,它会创建该网站的嵌入内容,这样人们就不会浏览链接。到目前为止,这是我的代码,非常基本,但是我不知道如何实现嵌入网站的功能。我知道site命令丝毫不起作用,但这是我的尝试:

const Discord = require('discord.js');

const client = new Discord.Client();

const prefix = '=';

client.once('ready', () => {
    console.log('WebPress is now online!');
    client.user.setActivity('Microsoft Word 1996', { type: 'PLAYING' })
});


client.on('message', message => {
    if(!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/)
    const command = args.shift().toLowerCase();


    if (command === 'ping'){
        message.channel.send('`Pong!`');
    } else if (command == 'site'){
        const siteEmbed = new Discord.MessageEmbed()
            .setURL(**THE URL THAT A USER SENDS**)
            if (!message.channel.first.size()) {
                return message.reply("please give me a website URL to embed!");
        } else message.channel.first();
            message.channel.send(`${siteEmbed}`);
    }

});

client.login('My token here');

感谢您提供的任何帮助,并祝您愉快! :)

2 个答案:

答案 0 :(得分:1)

要发送带有链接的嵌入,您可以执行此操作。这样会在标题中创建一个带有超链接的嵌入。

const siteEmbed = new Discord.MessageEmbed()
    .setURL(args[0])
    .setTitle("Your desription here");

有关嵌入https://discordjs.guide/popular-topics/embeds.html#embed-preview

的更多信息,请参见此处

要检查用户是否实际发送了链接,可以检查第一个参数是否存在。

if (!args[0]) {
    return message.reply("please give me a website URL to embed!");
}

答案 1 :(得分:0)

对于正在查看此内容的任何人,此问题已通过使用 Pupeteer API 截取网站屏幕截图并附上用户发送的 URL 长期解决。感谢当时我忘记 args 存在时的帮助:D