到目前为止,我得到了这个使用random-puppy从set subreddits中提取图像的方法。我会把cmd的meme改成reddit。另外,如果频道没有标记为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'
};
发布于 2019-05-31 07:23:52
您可以简单地使用用户提供的参数,而不是定义一个子数组并选择一个随机数组。
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.log('Not an NSFW channel');
https://stackoverflow.com/questions/56383818
复制相似问题