From 98ca908c01c64babbfd9d4d39721d3a1f799b897 Mon Sep 17 00:00:00 2001 From: hgw Date: Mon, 2 Oct 2023 02:11:24 +0000 Subject: [PATCH] add feed command, this should have committed before --- commands/feed.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 commands/feed.js diff --git a/commands/feed.js b/commands/feed.js new file mode 100644 index 0000000..769e602 --- /dev/null +++ b/commands/feed.js @@ -0,0 +1,40 @@ +const { parentPort, workerData } = require('worker_threads'); +const { provfeed, n } = workerData; +let Parser = require('rss-parser'); +let parser = new Parser({ + headers: {'User-Agent': config.feed.useragent}, +}); +const striptags = require("striptags"); +const config = require('../config/default.json') + +async function sendUpstream(content) { + var output = content.join("\n") + parentPort.postMessage(output); + process.exit() +} + +async function fetchFeed(feedURL, n) { + var content = []; + let newFeed = await parser.parseURL(feedURL); + //for (let i = 0; i < newFeed.items.length; i++) { + for (let i = 0; i < n; i++) { + var data = newFeed.items[i] + var title = data.title.replace(/(\r\n|\n|\r)/gm, " ") //remove line breaks + .replace(/\s{2,}/g, ' ') //idk + var title = striptags(title); + var body = data.contentSnippet.replace(/(\r\n|\n|\r)/gm, " ") //remove line breaks + .replace(/\s{2,}/g, ' ') //idk + var body = striptags(body); + if (body.length >= config.feed.body_max_chars) { + var truncatedString = body.substring(0,config.feed.body_max_chars); + var body = truncatedString + "..." + } + console.log(data); + var string = "15[11" + data.pubDate + "15] - 08" + title + " - " + body + " - " + data.link; + var output = string; + content.push(output) + } + sendUpstream(content); +} + +fetchFeed(provfeed, n);