На данный момент я получил это, которое извлекает изображения из заданных субреддитов, используя random-puppy. Я сменю мем на Reddit для cmd. Кроме того, как бы вы запретили людям извлекать изображения из субреддита 18+, если канал не помечен как NSFW?
const randomPuppy = require('random-puppy');
exports.run = async (client, message, args) => {
let reddit = [
"meme",
"animemes",
"MemesOfAnime",
"animememes",
"AnimeFunny",
"dankmemes",
"dankmeme",
"wholesomememes",
"MemeEconomy",
"techsupportanimals",
"meirl",
"me_irl",
"2meirl4meirl",
"AdviceAnimals"
]
let subreddit = reddit[Math.floor(Math.random() * reddit.length)];
message.channel.startTyping();
randomPuppy(subreddit).then(async url => {
await message.channel.send({
files: [{
attachment: url,
name: 'meme.png'
}]
}).then(() => message.channel.stopTyping());
}).catch(err => console.error(err));
};
exports.help = {
name: 'meme',
aliases: [],
description: 'What can I say ͡°-͜ʖ-͡°',
usage: 'meme'
};
Вместо того, чтобы определять массив субреддитов и выбирать случайный, вы можете просто использовать предоставленный пользователем аргумент.
const randomPuppy = require('random-puppy');
exports.run = async (client, message, args) => {
// Assuming args[1] is the name of the subreddit.
try {
if (!args[1]) {
// Insert your code for choosing from a random subreddit.
} else {
if (args[2]) return await message.channel.send('Too many arguments.');
const imgURL = await randomPuppy(args[1]);
await message.channel.send({
files: [{
attachment: imgURL,
name: 'image.png'
}];
});
}
} catch(err) {
console.error(err);
}
};
exports.help = {
name: 'reddit',
aliases: [],
description: 'Retrieve a random picture from a subreddit',
usage: 'meme'
};
Что касается ограничения контента NSFW, вам, вероятно, придется сканировать изображение с помощью какой-либо системы обнаружения наготы / NSFW. Чтобы проверить, помечен ли канал как NSFW, вы можете использовать...
if (message.channel.nsfw === false) console.info('Not an NSFW channel');
Спасибо ? Теперь я понял функцию
Я считаю, что с помощью Reddit JSON API (reddit.com/r/memes.json) вы можете получить данные, если он помечен как NSFW, а затем выполнить проверку, например if (!message.channel.nsfw && post.nsfw) return 'blah'
Я не уверен, что понял ваш вопрос, вы можете уточнить? Что ты хочешь? Остановить бота от случайного nsfw? Остановить его от извлечения из nsfw reddit?