如何获取任何subreddit图像,包括成人图像? Discord.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);
            }
        }
    }

解决方法

我将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软件包和文档可以在here

中找到