abstracted async
This commit is contained in:
29
bot.js
29
bot.js
@@ -101,7 +101,7 @@ function noQuestion() {
|
|||||||
// 3. RedditBooru
|
// 3. RedditBooru
|
||||||
function bestEffortRequest(subpage, page_max) {
|
function bestEffortRequest(subpage, page_max) {
|
||||||
|
|
||||||
let reddit_response = asyncRedditRequest(subpage);
|
let reddit_response = asyncSiteRequest("https://www.reddit.com/r/" + subpage + "/.json?show=all&count=25&limit=100", handleRedditJson);
|
||||||
if(reddit_response) { return reddit_response; }
|
if(reddit_response) { return reddit_response; }
|
||||||
|
|
||||||
let imgur_response;
|
let imgur_response;
|
||||||
@@ -147,22 +147,23 @@ function imgurRequest(subreddit, page_max) {
|
|||||||
return returnText;
|
return returnText;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dalton async reddit?
|
// Abstracted Reddit Json media grab.
|
||||||
function asyncRedditRequest(requested_item) {
|
function handleRedditJson(data) {
|
||||||
|
let json = data.json();
|
||||||
|
for(i = 0; i < json.data.children.length; i++) {
|
||||||
|
let rand = getRandomInt(0, json.data.children.length - 1);
|
||||||
|
|
||||||
let url= "https://www.reddit.com/r/" + requested_item + "/.json?show=all&count=25&limit=100";
|
if (json.data.children[rand].data.post_hint === "image" || json.data.children[rand].data.post_hint === "link" || json.data.children.data.post_hint === "rich:video") {
|
||||||
|
return json.data.children[rand].data.url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Makes an async url request with the provided function: 'process'.
|
||||||
|
function asyncSiteRequest(url, process) {
|
||||||
|
|
||||||
fetch(url)
|
fetch(url)
|
||||||
.then(data => {
|
.then(data => {return process(data);})
|
||||||
let json = data.json();
|
|
||||||
for(i = 0; i < json.data.children.length; i++) {
|
|
||||||
let rand = getRandomInt(0, json.data.children.length - 1);
|
|
||||||
|
|
||||||
if (json.data.children[rand].data.post_hint === "image" || json.data.children[rand].data.post_hint === "link" || json.data.children.data.post_hint === "rich:video") {
|
|
||||||
return json.data.children[rand].data.url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
client.channels.get('357365312620068874').send(error.message);
|
client.channels.get('357365312620068874').send(error.message);
|
||||||
return ""; })
|
return ""; })
|
||||||
|
Reference in New Issue
Block a user