使用 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");
我正在尝试制作一个 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");