Pārlūkot izejas kodu

Encode URL as base64 to prevent issues with DB path

denikson 6 gadi atpakaļ
vecāks
revīzija
9dc4fe47ad
2 mainītis faili ar 5 papildinājumiem un 2 dzēšanām
  1. 4 2
      main.js
  2. 1 0
      package.json

+ 4 - 2
main.js

@@ -6,6 +6,7 @@ const interval = require("interval-promise");
 const TurndownService = require("turndown");
 const fs = require("fs");
 const isImage = require("is-image");
+const Base64 = require("js-base64").Base64;
 
 const turndown = new TurndownService();
 turndown.addRule("image", {
@@ -36,12 +37,13 @@ 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())
+                let itemID = Base64.encode(item.guid);
+                if(oldNews.has(itemID).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();
+                oldNews.set(itemID, true).write();
             });
             let lastUpdateDate = printableItems[printableItems.length - 1].isoDate;
             console.log(`Setting last update marker on ${feedEntry.url} to ${lastUpdateDate}`);

+ 1 - 0
package.json

@@ -23,6 +23,7 @@
     "discord.js": "^11.4.2",
     "interval-promise": "^1.2.0",
     "is-image": "^2.0.0",
+    "js-base64": "^2.4.9",
     "lowdb": "^1.0.0",
     "rss-parser": "^3.4.3",
     "turndown": "^5.0.1",