Newer
Older
express-blog / src / services / rssFeedService.js
@Jason Jason on 13 Jul 759 bytes deleted: src/api/posts.js
// src/services/rssFeedService.js
const RSS = require("rss");
const { getAllPosts } = require("../utils/postFileUtils");
const {
  FEED_TITLE,
  FEED_DESCRIPTION,
  FEED_LANGUAGE,
} = require("../constants/rssConstants");

async function generateRSSFeed(baseDir, siteUrl) {
  const allPosts = await getAllPosts(baseDir);

  const feed = new RSS({
    title: FEED_TITLE,
    description: FEED_DESCRIPTION,
    feed_url: `${siteUrl}/rss.xml`,
    site_url: siteUrl,
    language: FEED_LANGUAGE,
  });

  for (const post of allPosts) {
    feed.item({
      title: post.title,
      description: post.excerpt || "",
      url: `${siteUrl}${post.url}`,
      date: post.date,
    });
  }

  return feed.xml({ indent: true });
}

module.exports = generateRSSFeed;