首页 > 解决方案 > 如何获取任何 subreddit 图片,包括成人图片?不和谐.js

问题描述

我找到了这段代码并尝试对其进行测试,它没有回复任何内容。

有人可以尝试修复它或向我展示另一种获取 subreddit 帖子图片的方法(模因,nsfw)吗?相信很多人都有同样的疑问,谢谢。

const Discord = require("discord.js");
const bot = new Discord.Client();
const snekfetch = require('snekfetch');

module.exports = {
    name: "meme",
    description: "TDankmeme",
    run : async (client, message, args) => {
            try {
                const { body } = await snekfetch
                    .get('https://www.reddit.com/r/dankmemes.json?sort=top&t=week')
                    .query({ limit: 800 });
                const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18);
                if (!allowed.length) return message.channel.send('It seems we are out of fresh memes!, Try again later.');
                const randomnumber = Math.floor(Math.random() * allowed.length)
                const embed = new Discord.RichEmbed()
                .setColor(0x00A2E8)
                .setTitle(allowed[randomnumber].data.title)
                .setDescription("Posted by: " + allowed[randomnumber].data.author)
                .setImage(allowed[randomnumber].data.url)
                .addField("Other info:", "Up votes: " + allowed[randomnumber].data.ups + " / Comments: " + allowed[randomnumber].data.num_comments)
                .setFooter("Memes provided by r/dankmemes")
                message.channel.send(embed)
            } catch (err) {
                return console.log(err);
            }
        }
    }

标签: javascriptdiscord.jsreddit

解决方案


我正在使用random-reddit我的机器人。并且它的工作良好。

这是一个基本设置:

const reddit = require('@elchologamer/random-reddit');

let options = {
   imageOnly: true,
   allowNSFW: true
};

reddit.getPost('memes', options).then(post => { //Make sure to change 'memes' with whatever subreddit you want

   var title = post.title
   var content = post.text
   var postURL = post.permalink
   var postAuthor = post.author
   var upvotes = post.upvotes
   var downvotes = post.downvots
}

您可以使用变量或使用console.log(post)来获取完整数据。

npm 包和文档可以在这里找到


推荐阅读