Add posting of links from multiple feeds

This commit is contained in:
benji7425 2017-05-15 20:17:14 +01:00
parent f2878bc319
commit 6264e0d1f5
2 changed files with 42 additions and 27 deletions

View file

@ -1,23 +1,26 @@
{ {
"feedUrl": "https://www.youtube.com/feeds/videos.xml?user=EthosLab", "feedUrls": [
"channelID": "264420391282409473", "https://www.youtube.com/feeds/videos.xml?user=EthosLab",
"serverID": "264420391282409473", "https://www.youtube.com/feeds/videos.xml?user=VintageBeef"
"pollingInterval": 5000, ],
"numLinksToCache": 10, "channelID": "264420391282409473",
"messageDeleteDelay": 10000, "serverID": "264420391282409473",
"youtubeMode": true, "pollingInterval": 5000,
"allowSubscriptions": true, "numLinksToCache": 10,
"subscribersRoleID": "272788856447959040", "messageDeleteDelay": 10000,
"logFile": "./log", "youtubeMode": true,
"userCommands": { "allowSubscriptions": true,
"subscribe": "!subscribe", "subscribersRoleID": "272788856447959040",
"unsubscribe": "!unsubscribe", "logFile": "./log",
"help": "!help" "userCommands": {
}, "subscribe": "!subscribe",
"developerCommands": { "unsubscribe": "!unsubscribe",
"cacheList": "!cached" "help": "!help"
}, },
"developers": [ "developerCommands": {
"117966411548196870" "cacheList": "!cached"
] },
"developers": [
"117966411548196870"
]
} }

View file

@ -15,9 +15,14 @@ module.exports = {
//set the interval function to check the feed //set the interval function to check the feed
intervalFunc = () => { intervalFunc = () => {
Feed.check((err, articles) => { var callback = (err, articles) => {
Links.validate(err, articles, (latestLink) => Actions.post(bot, latestLink)); Links.validate(err, articles, (latestLink) => Actions.post(bot, latestLink));
}); };
if (Config.feedUrls.length > 1)
Feed.checkMultiple(Config.feedUrls, callback);
else
Feed.check(Config.feedUrls[0], callback);
}; };
setInterval(() => { intervalFunc(); }, Config.pollingInterval); setInterval(() => { intervalFunc(); }, Config.pollingInterval);
@ -244,11 +249,18 @@ var Links = {
}; };
var Feed = { var Feed = {
urlObj: Url.parse(Config.feedUrl), check: function (feedUrl, callback) {
check: function (callback) { Dns.resolve(Url.parse(feedUrl).host, function (err) { //check that we have an internet connection (well not exactly - check that we have a connection to the host of the feedUrl)
Dns.resolve(Feed.urlObj.host, function (err) { //check that we have an internet connection (well not exactly - check that we have a connection to the host of the feedUrl)
if (err) Console.error("CONNECTION ERROR: Cannot resolve host.", err); if (err) Console.error("CONNECTION ERROR: Cannot resolve host.", err);
else FeedRead(Config.feedUrl, callback); else FeedRead(feedUrl, callback);
});
},
checkMultiple: function (feedUrls, individualCallback) {
feedUrls.forEach((url) => {
Dns.resolve(Url.parse(url).host, (err) => {
if (err) Console.error("CONNECTION ERROR: Cannot resolve host.", err);
else FeedRead(url, individualCallback);
});
}); });
} }
}; };