import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
import type { APIContext } from 'astro';
export async function GET(context: APIContext) {
const episodes = await getCollection('episodes');
const sortedEpisodes = episodes.sort(
(a, b) =>
new Date(b.data.pubDate).getTime() - new Date(a.data.pubDate).getTime()
);
return rss({
title: 'The Computer Guru Show',
description:
'Helping you deal with all of your technology needs while treating you like a person in the process.',
site: context.site!.toString(),
items: sortedEpisodes.map((ep) => ({
title: ep.data.title,
pubDate: ep.data.pubDate,
description: ep.body?.substring(0, 300) || ep.data.title,
link: `/episodes/${ep.id}`,
customData: `
${ep.data.duration}
${ep.data.episode}
${ep.data.season}`,
})),
customData: `en-us
Mike Swanson
false
episodic`,
xmlns: {
itunes: 'http://www.itunes.com/dtds/podcast-1.0.dtd',
},
});
}