uwu edit
This commit is contained in:
80
bot.js
80
bot.js
@@ -246,31 +246,23 @@ async function loadJson(url, auth) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Makes an async url request parsing a user message.
|
// Makes an async url request parsing a user message.
|
||||||
async function asyncImageRequest(channelMessage) {
|
async function asyncImageRequest(requested_item) {
|
||||||
// Split the user message
|
|
||||||
let messageSplit = channelMessage.content.substring(2).split(' ');
|
|
||||||
|
|
||||||
// todo locked down to one search term. need to decouple the parsing.
|
//collect all the json
|
||||||
if (messageSplit.length === 2) {
|
let image_url_list = [];
|
||||||
//regex clean the requested item to help with silly typos.
|
let reddit_json = await loadJson("https://www.reddit.com/r/" + requested_item + "/.json?show=all&count=25&limit=100");
|
||||||
let requested_item = messageSplit[1].replace(/[^a-zA-Z0-9_\-]+/g, '');
|
let imgur_json = await loadJson('https://api.imgur.com/3/gallery/r/' + requested_item + '/time/' + getRandomInt(1, 5), auth.imgur);
|
||||||
|
|
||||||
//collect all the json
|
// todo need to check config to see if it's a valid booruuuuu
|
||||||
let image_url_list = [];
|
//let redditbooru_json = await loadJson("https://" + requested_item + ".redditbooru.com/images/?limit=1000");
|
||||||
let reddit_json = await loadJson("https://www.reddit.com/r/" + requested_item + "/.json?show=all&count=25&limit=100");
|
|
||||||
let imgur_json = await loadJson('https://api.imgur.com/3/gallery/r/' + requested_item + '/time/' + getRandomInt(1, 5), auth.imgur);
|
|
||||||
|
|
||||||
// todo need to check config to see if it's a valid booruuuuu
|
image_url_list = image_url_list.concat(getUrlListFromReddit(reddit_json), getUrlListFromImgur(imgur_json)); //, getUrlListFromRedditBooru(redditbooru_json)
|
||||||
//let redditbooru_json = await loadJson("https://" + requested_item + ".redditbooru.com/images/?limit=1000");
|
console.log('image concat list:' + image_url_list);
|
||||||
|
|
||||||
image_url_list = image_url_list.concat(getUrlListFromReddit(reddit_json), getUrlListFromImgur(imgur_json)); //, getUrlListFromRedditBooru(redditbooru_json)
|
if (image_url_list) {
|
||||||
console.log('image concat list:' + image_url_list);
|
return image_url_list[getRandomInt(0, image_url_list.length - 1)];
|
||||||
|
} else {
|
||||||
if (image_url_list) {
|
return "I couldn't find that, sauce?";
|
||||||
return image_url_list[getRandomInt(0, image_url_list.length - 1)];
|
|
||||||
} else {
|
|
||||||
return "I couldn't find that, sauce?";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -451,6 +443,11 @@ client.on('ready', () => {
|
|||||||
|
|
||||||
// commands
|
// commands
|
||||||
client.on('message', message => {
|
client.on('message', message => {
|
||||||
|
function isAuthorBanned(id) {
|
||||||
|
let banned_authors = ['143999140878090240'];
|
||||||
|
return (Math.floor(Math.random() * 2) === 0) ? false : banned_authors.includes(id);
|
||||||
|
}
|
||||||
|
|
||||||
if (message.content.substring(0, 2).toUpperCase() === 'B.' || message.content.substring(0, 2) === '//') {
|
if (message.content.substring(0, 2).toUpperCase() === 'B.' || message.content.substring(0, 2) === '//') {
|
||||||
let args = message.content.substring(2).split(' ');
|
let args = message.content.substring(2).split(' ');
|
||||||
let cmd = args[0];
|
let cmd = args[0];
|
||||||
@@ -632,6 +629,8 @@ client.on('message', message => {
|
|||||||
case 'myid':
|
case 'myid':
|
||||||
message.reply('Author is:' + message.author + '\nID is:' + message.author.id);
|
message.reply('Author is:' + message.author + '\nID is:' + message.author.id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'async':
|
||||||
case's':
|
case's':
|
||||||
case 'smn':
|
case 'smn':
|
||||||
case 'summn':
|
case 'summn':
|
||||||
@@ -640,24 +639,23 @@ client.on('message', message => {
|
|||||||
// Dalton's image summon command.
|
// Dalton's image summon command.
|
||||||
// Checks for banned author's using a hard coded list of discord ids.
|
// Checks for banned author's using a hard coded list of discord ids.
|
||||||
// Also rudely cleans garbage entries.
|
// Also rudely cleans garbage entries.
|
||||||
let banned_authors = ['143999140878090240'];
|
let is_banned = isAuthorBanned(message.author.id);
|
||||||
if (!banned_authors.includes(message.author.id)) {
|
if (!is_banned) {
|
||||||
|
|
||||||
let messageSplit = message.content.substring(2).split(' ');
|
let messageSplit = message.content.substring(2).split(' ');
|
||||||
if (messageSplit.length === 2) {
|
if (messageSplit.length === 2) {
|
||||||
let redditToSummon = messageSplit[1].replace(/[^a-zA-Z0-9_\-]+/g, '');
|
let requested_item = messageSplit[1].replace(/[^a-zA-Z0-9_\-]+/g, '');
|
||||||
|
|
||||||
// Valid Argument
|
// Valid Argument
|
||||||
if (redditToSummon) {
|
let link = asyncImageRequest(requested_item)
|
||||||
|
.then(link => message.channel.send(link))
|
||||||
message.channel.send(message.author + ' summons ' + redditToSummon + '\n');
|
.catch(error => {
|
||||||
let site_response = bestEffortRequest(redditToSummon, 5);
|
console.error('async:' + error.message);
|
||||||
|
console.error('promise:' + JSON.stringify(link));
|
||||||
if (site_response) {
|
});
|
||||||
message.channel.send(site_response);
|
//sendToBotTestingChannel('link promise: ' + JSON.stringify(link));
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (messageSplit.length > 2) {
|
} else if (messageSplit.length > 2) {
|
||||||
|
// todo handle more entries
|
||||||
//message.channel.send(message.author + ' summons ' + message.content.substring(9) + '\n');
|
//message.channel.send(message.author + ' summons ' + message.content.substring(9) + '\n');
|
||||||
//let imgur_terms = encodeURIComponent(message.content.substring(9).trim());
|
//let imgur_terms = encodeURIComponent(message.content.substring(9).trim());
|
||||||
//let imgur_response = imgurRequest(imgur_terms, 5);
|
//let imgur_response = imgurRequest(imgur_terms, 5);
|
||||||
@@ -672,25 +670,13 @@ client.on('message', message => {
|
|||||||
message.reply('wut do i summon?');
|
message.reply('wut do i summon?');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
message.channel.send("You're a bad boi and a banned author, you can't summon til you learn to behave.");
|
message.reply("I decided youw summon was twash so i thwew it away...oops! UWU");
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
//message.channel.send(error.stack);
|
sendToBotTestingChannel('summon:' + error.message + '\nstack:' + error.stack);
|
||||||
//message.channel.send(error.name);
|
|
||||||
//message.channel.send(error.message);
|
|
||||||
sendToBotTestingChannel('summon:' + error.message);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'async':
|
|
||||||
let link = asyncImageRequest(message)
|
|
||||||
.then(link => message.channel.send(link))
|
|
||||||
.catch(error => {
|
|
||||||
console.error('async:' + error.message);
|
|
||||||
});
|
|
||||||
sendToBotTestingChannel('link promise: ' + JSON.stringify(link));
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Voice commands
|
// Voice commands
|
||||||
case 'join':
|
case 'join':
|
||||||
channel = message.member.voiceChannel;
|
channel = message.member.voiceChannel;
|
||||||
|
Reference in New Issue
Block a user