22 lines
876 B
TypeScript
22 lines
876 B
TypeScript
import rss from "@astrojs/rss";
|
|
import type { APIRoute } from "astro";
|
|
import { set as dateSet, subMinutes } from "date-fns";
|
|
import { TOS_FEED } from "../data/tos";
|
|
|
|
export const GET: APIRoute = ({ site }) => {
|
|
return rss({
|
|
title: "Bad Manners",
|
|
description: "Bad Manners status updates",
|
|
site: site!,
|
|
items: TOS_FEED.map(({ status, updatedAt }) => ({
|
|
title: {
|
|
CLOSED: "Story commissions are closed.",
|
|
OPEN: "Story commissions are open!",
|
|
SEMI_OPEN: "Story commissions are semi-open, and I may accept them less frequently.",
|
|
PRIVATE: "Story commissions are private; they are only open to select commissioners.",
|
|
}[status],
|
|
link: "https://badmanners.xyz/terms_of_service",
|
|
pubDate: subMinutes(dateSet(updatedAt, { hours: 12, minutes: 0, seconds: 0 }), updatedAt.getTimezoneOffset()),
|
|
})),
|
|
});
|
|
};
|