Quellcode durchsuchen

Only post news that weren't posted before

denikson vor 6 Jahren
Ursprung
Commit
887c4cdfe9
2 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 1 0
      db.js
  2. 4 0
      main.js

+ 1 - 0
db.js

@@ -66,6 +66,7 @@ db.defaults({
             contentElement: "content:encoded"
         }
     ],
+    postedNewsGuids: {},
     feedOutputs: [
         "422693157692637184"
     ]

+ 4 - 0
main.js

@@ -24,6 +24,7 @@ const REACT_PROBABILITY = 0.6;
 async function checkFeeds() {
     let feeds = db.get("rssFeeds").value();
     let outlets = db.get("feedOutputs").value();
+    let oldNews = db.get("postedNewsGuids");
     for(let feedEntry of feeds) {
         let feed = await parser.parseURL(feedEntry.url);
         if(feed.items.length == 0)
@@ -31,9 +32,12 @@ async function checkFeeds() {
         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 => {
+                if(oldNews.has(item.guid).value())
+                    return;
                 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, "")}`);
                 });
+                oldNews.set(item.guid, true).write();
             });
             let lastUpdateDate = printableItems[printableItems.length - 1].isoDate;
             console.log(`Setting last update marker on ${feedEntry.url} to ${lastUpdateDate}`);