dank-bot-js/bot-modules/lewd/module.js

63 lines
1.7 KiB
JavaScript

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;