From 67e86200edcaaba63f8e093125cbdc711ae9cba4 Mon Sep 17 00:00:00 2001 From: cameron Date: Sun, 28 Feb 2021 15:16:28 -0500 Subject: [PATCH] Server and nsfw changes --- bot-modules/gameserver/module.js | 4 ++- bot-modules/lewd/module.js | 61 ++++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/bot-modules/gameserver/module.js b/bot-modules/gameserver/module.js index a408408..f0ebc77 100644 --- a/bot-modules/gameserver/module.js +++ b/bot-modules/gameserver/module.js @@ -12,7 +12,9 @@ class GameServer { if(msg.content.startsWith('!mc')) { Gamedig.query({ type: 'minecraftping', - host: 'americastrong.jumpingcrab.com' +// host: 'americastrong.jumpingcrab.com' + host: '192.168.1.201', + port: 35432 }).then((state) => { let str = "MINECRAFT SERVER INFO\n"; console.log(state); diff --git a/bot-modules/lewd/module.js b/bot-modules/lewd/module.js index 66461d7..648d151 100644 --- a/bot-modules/lewd/module.js +++ b/bot-modules/lewd/module.js @@ -6,14 +6,41 @@ const rp = require('request-promise-native'); class Lewd { constructor() { - this.matches = [ "tits", "ass", "booty", "thicc", "2d", "furry", "sexy", "reddimg" ]; + this.matches = [ "tits", "ass", "booty", "thicc", "2d", "furry", "sexy", "reddimg", "dick", "cock", "penis", "milf", "fuck", "sex", "degenerate", "milkers", "goth", "btgg" ]; } - async loadSubreddit(name) { - let subredditData = await rp(`https://www.reddit.com/r/${name}.json?limit=250`); + async loadSubreddit(name, desired_entries=400) { + let entries = 0; + let entryData = []; + let subredditData = await rp(`https://www.reddit.com/r/${name}/new/.json?limit=100`); + + // access if cached + try { + let stats = fs.statSync(`cache/${name}.txt`); + let time_diff = (new Date().getTime() - new Date(stats.mtime).getTime()) / 1000; + if (time_diff > 21600) { throw new Error('Need to update cache!'); } + let entryText = fs.readFileSync(`cache/${name}.txt`); + entryData = JSON.parse(entryText); + console.log(`Loading cached data for ${name}`); + return entryData; + } catch (e) { + console.log(`${name} not cached...`); + } + try { let sJson = JSON.parse(subredditData); - return sJson; + entryData = entryData.concat(sJson.data.children); + entries += sJson.data.children.length; + while (entries <= desired_entries) { + let after_tag = sJson.data.after; + subredditData = await rp(`https://www.reddit.com/r/${name}/new/.json?limit=100&after=${after_tag}`); + sJson = JSON.parse(subredditData); + entryData = entryData.concat(sJson.data.children); + entries += sJson.data.children.length; + } + console.log(`Writing ${name} data to cache...`); + fs.writeFileSync(`cache/${name}.txt`, JSON.stringify(entryData)); + return entryData; } catch (e) { console.log("Invalid JSON!"); return ""; @@ -22,11 +49,12 @@ class Lewd { async getRandomEntry(subreddit) { let srData = await this.loadSubreddit(subreddit); - let count = srData.data.children.length; + let count = srData.length; + console.log(`Got ${count} items`); for(let i = 0; i < 10; i++) { let selection = Math.floor(Math.random() * count); - let url = srData.data.children[selection].data.url; + let url = srData[selection].data.url; if(url.endsWith('.jpg') || url.endsWith('.gif') || url.endsWith('.png') || url.endsWith('.jpeg') || url.includes('gfycat.com') ) { return url.toString(); } @@ -51,11 +79,11 @@ class Lewd { async action(msg) { let chan = msg.channel; if(msg.content.startsWith('!tits')) { - chan.send(await this.getRandomRedditImg('homegrowntits+BigBoobsGW+Boobies')); + chan.send(await this.getRandomRedditImg('homegrowntits+BigBoobsGW+Boobies+hugehangers+biggerthanyouthought+udders+tittydrop')); } else if (msg.content.startsWith('!booty') || msg.content.startsWith('!ass')) { - chan.send(await this.getRandomRedditImg('bigasses+whooties+pawg+slightcellulite')); + chan.send(await this.getRandomRedditImg('bigasses+pawg+slightcellulite')); } else if (msg.content.startsWith('!thicc')) { - chan.send(await this.getRandomRedditImg('thicker+thickthighs+chubby+voluptuous+breedingmaterial')); + chan.send(await this.getRandomRedditImg('thickthighs+voluptuous+breedingmaterial+thickchixx+plumper+gonewildplus+thickchixxx+bbw_chubby')); } else if (msg.content.startsWith('!2d')) { chan.send(await this.getRandomRedditImg('hentai+rule34')); } else if (msg.content.startsWith('!furry')) { @@ -66,8 +94,21 @@ class Lewd { let contentArr = msg.content.split(" "); if(contentArr.length < 2) return; chan.send(await this.getRandomRedditImg(contentArr[1])); + } else if (msg.content.startsWith('!dick') || msg.content.startsWith('!cock') || msg.content.startsWith('!penis')) { + chan.send(await this.getRandomRedditImg('penis+massivecock+ratemycock+sizecomparison+averagepenis+naturalpenis+smallpenis')); + } else if (msg.content.startsWith('!milf')) { + chan.send(await this.getRandomRedditImg('milf+wifesharing+gonewild30plus+milfie')); + } else if (msg.content.startsWith('!fuck') || msg.content.startsWith('!sex')) { + chan.send(await this.getRandomRedditImg('gonewildcouples+nsfw_gif+besthqporngifs+60fpsporn+girlsfinishingthejob+lipsthatgrip+amateurgirlsbigcocks+shelikesitrough')); + } else if (msg.content.startsWith('!degenerate')) { + chan.send(await this.getRandomRedditImg('yiff+cuckold+hotwife+bondage+bdsm+bdsmgw+forcedorgasms+rule34+furry+dominated+teenbdsm+bondageblowjobs+fetish+cumsluts+vore')); + } else if (msg.content.startsWith('!milkers')) { + chan.send(await this.getRandomRedditImg('udders+hugehangers+bigboobsgw+hugeboobs+hugetits+hugeboobgifs')); + } else if (msg.content.startsWith('!goth')) { + chan.send(await this.getRandomRedditImg('gothsluts+bigtiddygothgf+snowwhites+altgonewild')); + } else if (msg.content.startsWith('!btgg')) { + chan.send(await this.getRandomRedditImg('bigtiddygothgf')); } - } }