3
0
mirror of https://github.com/reality/dbot.git synced 2024-11-23 20:39:25 +01:00

dont repeat items with the same title within a bound of 30

This commit is contained in:
reality 2014-06-19 14:51:54 +00:00
parent 09e91bf817
commit 3a2374ad59

View File

@ -8,6 +8,8 @@ var FeedParser = require('feedparser'),
var rss = function(dbot) {
this.pollInterval = 120000;
this.titleCache = [];
var self = this;
this.internalAPI = {
'makeRequest': function(id,feed) {
@ -50,26 +52,32 @@ var rss = function(dbot) {
feed.newTime = item.pubdate.getTime();
}
var rss = item;
var options = {
uri: 'https://www.googleapis.com/urlshortener/v1/url',
method: 'POST',
json: {
"longUrl": rss.link
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode === 200) {
var rString = "["+feed.name+"] ["+rss.title+"] ";
if(rss.author !== null && !_.isUndefined(rss.categories[0])) {
rString += "[Post by "+rss.author+" in "+rss.categories[0]+"] ";
if(!_.include(self.titleCache, rss.title)) {
var options = {
uri: 'https://www.googleapis.com/urlshortener/v1/url',
method: 'POST',
json: {
"longUrl": rss.link
}
rString += "- "+body.id;
dbot.say(feed.server,feed.channel, rString);
} else {
dbot.say(feed.server,feed.channel,"RSS: Request to shorten URL returned: "+body.id);
};
request(options, function (error, response, body) {
if (!error && response.statusCode === 200) {
var rString = "["+feed.name+"] ["+rss.title+"] ";
if(rss.author !== null && !_.isUndefined(rss.categories[0])) {
rString += "[Post by "+rss.author+" in "+rss.categories[0]+"] ";
}
rString += "- "+body.id;
dbot.say(feed.server,feed.channel, rString);
}
});
if(self.titleCache.length > 30) {
self.titleCache.splice(0, 1);
}
});
self.titleCache.push(feed.title);
}
}
}
});