|
@@ -26,12 +26,17 @@ async function checkFeeds() {
|
|
|
let feed = await parser.parseURL(feedEntry.url);
|
|
|
if(feed.items.length == 0)
|
|
|
continue;
|
|
|
- feed.items.filter(i => i.isoDate > feedEntry.lastUpdate).forEach(item => {
|
|
|
- outlets.forEach(ch => {
|
|
|
- client.channels.get(ch).send(`**${item.title}**\nPosted by ${item.creator}\n${item.link}\n\n${turndown.turndown(item[feedEntry.contentElement]).replace(/( {2}\n|\n\n){2,}/gm, "\n").replace(item.link, "")}`);
|
|
|
+ let printableItems = feed.items.filter(i => i.isoDate > feedEntry.lastUpdate).sort((a, b) => a.isoDate.localeCompare(b.isoDate));
|
|
|
+ if(printableItems.length > 0) {
|
|
|
+ printableItems.forEach(item => {
|
|
|
+ outlets.forEach(ch => {
|
|
|
+ client.channels.get(ch).send(`**${item.title}**\nPosted by ${item.creator}\n${item.link}\n\n${turndown.turndown(item[feedEntry.contentElement]).replace(/( {2}\n|\n\n){2,}/gm, "\n").replace(item.link, "")}`);
|
|
|
+ });
|
|
|
});
|
|
|
- });
|
|
|
- db.get("rssFeeds").find({ url: feedEntry.url}).assign({lastUpdate: feed.items[0].isoDate}).write();
|
|
|
+ let lastUpdateDate = printableItems[printableItems.length - 1].isoDate;
|
|
|
+ console.log(`Setting last update marker on ${feedEntry.url} to ${lastUpdateDate}`);
|
|
|
+ db.get("rssFeeds").find({ url: feedEntry.url}).assign({lastUpdate: lastUpdateDate}).write();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|