2022-11-23 15:30:51 -05:00
|
|
|
if (process.env.NODE_ENV !== "production") {
|
|
|
|
require("dotenv").config();
|
|
|
|
}
|
|
|
|
let Mastodon = require("mastodon-api");
|
|
|
|
let Parser = require("rss-parser");
|
|
|
|
let parser = new Parser();
|
|
|
|
|
|
|
|
(async () => {
|
|
|
|
const M = new Mastodon({
|
|
|
|
access_token: `${process.env.MASTODON_ACCESS_KEY}`,
|
|
|
|
timeout_ms: 60 * 1000, // optional HTTP request timeout to apply to all requests.
|
|
|
|
api_url: `${process.env.MASTODON_API_URL}`,
|
|
|
|
});
|
|
|
|
|
2022-11-23 16:02:14 -05:00
|
|
|
let feed = await parser.parseURL("https://eurogamer.net/?format=rss");
|
2022-11-23 15:30:51 -05:00
|
|
|
|
|
|
|
let timeline = await M.get(
|
|
|
|
`accounts/${process.env.MASTODON_ACCOUNT_ID}/statuses`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
var postDate = new Date(timeline.data[0].created_at);
|
|
|
|
|
2022-11-23 16:02:14 -05:00
|
|
|
feed.items.forEach(async (item) => {
|
2022-11-23 15:30:51 -05:00
|
|
|
let pubDate = new Date(item.pubDate);
|
|
|
|
|
|
|
|
if (pubDate > postDate) {
|
|
|
|
M.post("statuses", {
|
2022-11-23 16:02:14 -05:00
|
|
|
status: `${item.title}\n\n#NeoVibe #${process.env.POST_HASHTAG}\n\n${item.link}`,
|
2022-11-23 15:30:51 -05:00
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})();
|