From 776c026a19a135614b866892c7b096611c8ab5ba Mon Sep 17 00:00:00 2001 From: "Michael (GP)" Date: Wed, 23 Nov 2022 16:34:57 -0500 Subject: [PATCH] adding max posts --- bot.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/bot.js b/bot.js index 6ff5652..0d96b50 100644 --- a/bot.js +++ b/bot.js @@ -4,8 +4,17 @@ if (process.env.NODE_ENV !== "production") { let Mastodon = require("mastodon-api"); let Parser = require("rss-parser"); let parser = new Parser(); +let maxPostPerScan = process.env.MAX_POST_PER_SCAN; (async () => { + await postFeed(); + + setInterval(async () => { + await postFeed(); + }, 20 * 60 * 1000); +})(); + +async function postFeed() { const M = new Mastodon({ access_token: `${process.env.MASTODON_ACCESS_KEY}`, timeout_ms: 60 * 1000, // optional HTTP request timeout to apply to all requests. @@ -20,13 +29,20 @@ let parser = new Parser(); ); var postDate = new Date(timeline.data[0].created_at); - feed.items.forEach(async (item) => { + let count = 0; + feed.items.every(async (item) => { + if (count > maxPostPerScan) return false; + let pubDate = new Date(item.pubDate); if (pubDate > postDate) { - M.post("statuses", { + count++; + await M.post("statuses", { status: `${item.title}\n\n#NeoVibe #${process.env.POST_HASHTAG}\n\n${item.link}`, }); + return true; } + + return true; }); -})(); +}