【问题标题】:Bypassing the NSFW warning page using random-puppy and discord.js v12?使用 random-puppy 和 discord.js v12 绕过 NSFW 警告页面?
【发布时间】:2020-09-12 06:23:20
【问题描述】:

我正在尝试制作一个 meme 机器人(使用 reddit),但一些 subreddit 有一个 NSFW 警告页面,它会阻止 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); 
    }
}

【问题讨论】:

    标签: javascript node.js discord discord.js reddit


    【解决方案1】:

    我建议使用 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");
    

    【讨论】:

    • 我确实知道最后一个提示,但这只是我忘记删除的内容,不过,感谢您迟到的回答
    • @oZion 另一个值得一提的注意事项是命令运行大约需要 5-7 秒,因此请记住这一点。
    猜你喜欢
    • 2021-02-27
    • 2020-09-14
    • 1970-01-01
    • 2010-09-28
    • 2019-08-23
    • 1970-01-01
    • 2021-06-01
    • 2020-10-19
    • 2021-08-04
    相关资源
    最近更新 更多