diff --git a/modules/rss/rss.js b/modules/rss/rss.js index 07c588d..8f8be88 100644 --- a/modules/rss/rss.js +++ b/modules/rss/rss.js @@ -6,23 +6,22 @@ var FeedParser = require('feedparser') , request = require('request'); var rss = function(dbot) { - this.pollInterval = 60000; + this.pollInterval = 120000; var self = this; - this.intervals = []; this.internalAPI = { - 'makeRequest': function(id,server,channel,name) { - var url = dbot.db.feeds[id].url; - var lastPosted = dbot.db.feeds[id].lastPosted; - var req = request(url); + 'makeRequest': function(id,feed) { + var fid = id; + var req = request(feed.url); var feedparser = new FeedParser(); + //dbot.say(feed.server,feed.channel,"Sending request for feed "+fid+" name "+feed.name+" lP:"+feed.lastPosted); req.on('error', function (error) { - dbot.say(server,channel,"RSS: Request for RSS feed got an error: "+error+" Start self-destruct sequence."); + dbot.say(feed.server,feed.channel,"RSS: Request for RSS feed got an error: "+error+" Start self-destruct sequence."); }); req.on('response', function (res) { var stream = this; if (res.statusCode != 200){ - dbot.say(server,channel,"RSS: RSS server returned status code "+res.statusCode+". Bastard."); + dbot.say(feed.server,feed.channel,"RSS: RSS server returned status code "+res.statusCode+". Bastard."); return; } @@ -30,7 +29,7 @@ var rss = function(dbot) { }); feedparser.on('error', function(error) { - dbot.say(server,channel,"RSS: Feedparser encountered an error: "+error+";;; Inform administrator!"); + dbot.say(feed.server,feed.channel,"RSS: Feedparser encountered an error: "+error+";;; Inform administrator!"); }); feedparser.on('readable', function() { // This is where the action is! @@ -39,21 +38,25 @@ var rss = function(dbot) { , item; while (item = stream.read()) { - if(item.pubdate - lastPosted > 0) { - lastPosted = item.pubdate; - dbot.say(server,channel,"["+name+"] ["+item.title+"] [Post by "+item.author+" in "+item.categories[0]+"] - "+item.link); + if(item.pubdate.getTime() - feed.lastPosted > 0) { + feed.lastPosted = item.pubdate.getTime(); + // FIXME: This doesn't work AT ALL + dbot.db.feeds.splice(fid,1); + dbot.db.feeds.push(feed); + // + dbot.say(feed.server,feed.channel,"["+feed.name+"] ["+item.title+"] [Post by "+item.author+" in "+item.categories[0]+"] - "+item.link); } } }); }.bind(this), - 'reloadFeeds': function() { + 'checkFeeds': function() { + console.log("Checking feeds..."); for(var i=0;i