adding max posts

This commit is contained in:
Michael (GP) 2022-11-23 16:34:57 -05:00
parent 8608fc661d
commit 776c026a19

22
bot.js
View File

@ -4,8 +4,17 @@ if (process.env.NODE_ENV !== "production") {
let Mastodon = require("mastodon-api"); let Mastodon = require("mastodon-api");
let Parser = require("rss-parser"); let Parser = require("rss-parser");
let parser = new Parser(); let parser = new Parser();
let maxPostPerScan = process.env.MAX_POST_PER_SCAN;
(async () => { (async () => {
await postFeed();
setInterval(async () => {
await postFeed();
}, 20 * 60 * 1000);
})();
async function postFeed() {
const M = new Mastodon({ const M = new Mastodon({
access_token: `${process.env.MASTODON_ACCESS_KEY}`, access_token: `${process.env.MASTODON_ACCESS_KEY}`,
timeout_ms: 60 * 1000, // optional HTTP request timeout to apply to all requests. 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); 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); let pubDate = new Date(item.pubDate);
if (pubDate > postDate) { 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}`, status: `${item.title}\n\n#NeoVibe #${process.env.POST_HASHTAG}\n\n${item.link}`,
}); });
return true;
} }
return true;
}); });
})(); }