const Discord = require("discord.js"); const fs = require('fs'); const request = require('request'); const rp = require('request-promise-native'); class Lewd { constructor() { this.matches = [ "tits", "ass", "booty", "thicc", "2d" ]; } async loadSubreddit(name) { let subredditData = await rp(`https://www.reddit.com/r/${name}.json`); try { let sJson = JSON.parse(subredditData); return sJson; } catch (e) { console.log("Invalid JSON!"); return ""; } } async getRandomEntry(subreddit) { let srData = await this.loadSubreddit(subreddit); let count = srData.data.children.length; for(let i = 0; i < 10; i++) { let selection = Math.floor(Math.random() * count); let url = srData.data.children[selection].data.url; if(url.endsWith('.jpg') || url.endsWith('.gif') || url.endsWith('.png') || url.endsWith('.jpeg') || url.endsWith('.gifv')) { return url; } } return -1; } async getRandomRedditImg(sub) { let rEmbed = new Discord.RichEmbed(); let img = await this.getRandomEntry(sub); console.log(img); rEmbed.setImage(img); return rEmbed; } async action(msg) { let chan = msg.channel; if(msg.content.startsWith('!tits')) { chan.send(await this.getRandomRedditImg('homegrowntits+BigBoobsGW+Boobies')); } else if (msg.content.startsWith('!booty') || msg.content.startsWith('!ass')) { chan.send(await this.getRandomRedditImg('bigasses+whooties+pawg')); } else if (msg.content.startsWith('!thicc')) { chan.send(await this.getRandomRedditImg('thick+thicker+voluptuous')); } else if (msg.content.startsWith('!2d')) { chan.send(await this.getRandomRedditImg('hentai+rule34')); } } } module.exports = Lewd;