问题描述
我找到了这段代码并尝试对其进行测试,但它没有任何回应。
有人可以尝试修复它还是向我展示获取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
中找到