使用 random-puppy 和 discord.js v12 绕过 NSFW 警告页面?

Bypassing the NSFW warning page using random-puppy and discord.js v12?

我正在尝试制作一个 meme bot(使用 reddit),但是一些 subreddits 有一个 NSFW 警告页面,它阻止 random-puppy 获取图像,我该如何绕过它?如果您知道更好的东西,欢迎我为 random-puppy 提供替代品

module.exports = {
    name: "meme",
    description: "Sends a meme",
    async execute(message, args){
        const Discord = require("discord.js");
        const bot = new Discord.Client();
        const ms = require("ms");
        const moment = require("moment");
        const colors = require("colors");
        const randomPuppy = require("random-puppy");

        const memeSubreddits = ["dankmemes", "memes", "meme", "me_irl", "meirl", "comedyheaven", "NSFWMemes", "okbuddyretard"]
        const memeRandom = memeSubreddits[Math.floor(Math.random() * memeSubreddits.length)];

        const memeImage = await randomPuppy(memeRandom);
        const memeEmbed = new Discord.RichEmbed()
            .setColor("RANDOM")
            .setImage(memeImage)
            .setTitle(`From r/${memeRandom}`)
            .setURL(`https://reddit.com/r/${memeRandom}`);

        message.channel.send(memeEmbed); 
    }
}

我建议使用 memejs 从 Reddit 获取模因。正如它的包名所暗示的那样,它获取模因,但您也可以过滤它从中收集的内容。

例如,您可以这样做:

module.exports = {
    name: "meme",
    description: "Sends a meme",
    guildOnly: true,
    execute(message) {
        const {
            meme
        } = require('memejs');

        meme(function (err, data) {
            if (err) return console.error(err);
            const Discord = require('discord.js');
            const memeRes = new Discord.RichEmbed()
                .setTitle(data.title)
                .setImage(data.url)
                .setFooter(data.subreddit)
                .setTimestamp('Created ' + data.created)
            message.channel.send(memeRes).then().catch(console.error);

        });

    },
}

与每个 Node 包一样,您可以在 RunKit 上使用它们。你可以做到 here

另外,作为一个小提示,您不需要在命令中声明未使用的模块。这基本上从您的命令中删除了以下内容:

const bot = new Discord.Client();
const ms = require("ms");
const moment = require("moment");
const colors = require("colors");