From 0c5860453b4c9fe4590624e775ff1e65bd635b85 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 18 Jul 2023 16:47:58 +0100 Subject: [PATCH] feat: change the default format of the feed to XML --- src/app/feed/hottest/route.ts | 2 +- src/app/feed/latest/route.ts | 6 ++--- src/app/layout.tsx | 26 +++++++++++++--------- src/app/site/[site]/feed/comments/route.ts | 6 ++--- src/app/site/[site]/feed/route.ts | 6 ++--- src/app/site/[site]/layout.tsx | 8 +++---- src/components/home/Integrations.tsx | 2 +- src/components/site/SiteHeaderMenu.tsx | 2 +- src/middleware.ts | 5 +---- 9 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/app/feed/hottest/route.ts b/src/app/feed/hottest/route.ts index a15f5224..6c868558 100644 --- a/src/app/feed/hottest/route.ts +++ b/src/app/feed/hottest/route.ts @@ -25,7 +25,7 @@ export async function GET(request: Request) { ), } - const format = searchParams.get("format") === "xml" ? "xml" : "json" + const format = searchParams.get("format") === "json" ? "json" : "xml" const res = new NextServerResponse() return res.status(200).rss(data, format) diff --git a/src/app/feed/latest/route.ts b/src/app/feed/latest/route.ts index 0816521b..67d0dac9 100644 --- a/src/app/feed/latest/route.ts +++ b/src/app/feed/latest/route.ts @@ -21,9 +21,9 @@ export async function GET(request: Request) { } const format = - new URLSearchParams(request.url.split("?")[1]).get("format") === "xml" - ? "xml" - : "json" + new URLSearchParams(request.url.split("?")[1]).get("format") === "json" + ? "json" + : "xml" const res = new NextServerResponse() return res.status(200).rss(data, format) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 9426e227..9d2c5f61 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -32,28 +32,34 @@ export const metadata: Metadata = { alternates: { types: { "application/rss+xml": [ - { url: "/feed/latest?format=xml", title: "xLog Latest" }, - { url: "/feed/hottest?interval=0&format=xml", title: "xLog Hottest" }, + { url: "/feed/latest", title: "xLog Latest" }, + { url: "/feed/hottest?interval=0", title: "xLog Hottest" }, { - url: "/feed/hottest?interval=1&format=xml", + url: "/feed/hottest?interval=1", title: "xLog Hottest of the Day", }, { - url: "/feed/hottest?interval=7&format=xml", + url: "/feed/hottest?interval=7", title: "xLog Hottest of the Week", }, { - url: "/feed/hottest?interval=30&format=xml", + url: "/feed/hottest?interval=30", title: "xLog Hottest of the Month", }, ], "application/feed+json": [ - { url: "/feed/latest", title: "xLog Latest" }, - { url: "/feed/hottest?interval=0", title: "xLog Hottest" }, - { url: "/feed/hottest?interval=1", title: "xLog Hottest of the Day" }, - { url: "/feed/hottest?interval=7", title: "xLog Hottest of the Week" }, + { url: "/feed/latest?format=json", title: "xLog Latest" }, + { url: "/feed/hottest?interval=0&format=json", title: "xLog Hottest" }, { - url: "/feed/hottest?interval=30", + url: "/feed/hottest?interval=1&format=json", + title: "xLog Hottest of the Day", + }, + { + url: "/feed/hottest?interval=7&format=json", + title: "xLog Hottest of the Week", + }, + { + url: "/feed/hottest?interval=30&format=json", title: "xLog Hottest of the Month", }, ], diff --git a/src/app/site/[site]/feed/comments/route.ts b/src/app/site/[site]/feed/comments/route.ts index 777ea3e4..cec58822 100644 --- a/src/app/site/[site]/feed/comments/route.ts +++ b/src/app/site/[site]/feed/comments/route.ts @@ -59,9 +59,9 @@ export async function GET( } const format = - new URLSearchParams(request.url.split("?")[1]).get("format") === "xml" - ? "xml" - : "json" + new URLSearchParams(request.url.split("?")[1]).get("format") === "json" + ? "json" + : "xml" const res = new NextServerResponse() return res.status(200).rss(data, format) diff --git a/src/app/site/[site]/feed/route.ts b/src/app/site/[site]/feed/route.ts index f95519a9..7fec0450 100644 --- a/src/app/site/[site]/feed/route.ts +++ b/src/app/site/[site]/feed/route.ts @@ -72,9 +72,9 @@ export async function GET( } const format = - new URLSearchParams(request.url.split("?")[1]).get("format") === "xml" - ? "xml" - : "json" + new URLSearchParams(request.url.split("?")[1]).get("format") === "json" + ? "json" + : "xml" const res = new NextServerResponse() return res.status(200).rss(data, format) diff --git a/src/app/site/[site]/layout.tsx b/src/app/site/[site]/layout.tsx index ac23fb10..06c6f8d0 100644 --- a/src/app/site/[site]/layout.tsx +++ b/src/app/site/[site]/layout.tsx @@ -53,13 +53,13 @@ export async function generateMetadata({ alternates: { types: { "application/rss+xml": [ - { url: "/feed?format=xml", title }, - { url: "/feed/comments?format=xml", title: `Comments on ${title}` }, - ], - "application/feed+json": [ { url: "/feed", title }, { url: "/feed/comments", title: `Comments on ${title}` }, ], + "application/feed+json": [ + { url: "/feed?format=json", title }, + { url: "/feed/comments?format=json", title: `Comments on ${title}` }, + ], }, }, icons: images, diff --git a/src/components/home/Integrations.tsx b/src/components/home/Integrations.tsx index b6ca7681..7e7c1da7 100644 --- a/src/components/home/Integrations.tsx +++ b/src/components/home/Integrations.tsx @@ -22,7 +22,7 @@ export function Integration() { url: getSiteLink({ subdomain: "xlog", - }) + "/feed?format=xml", + }) + "/feed", }, { name: "JSON Feed", diff --git a/src/components/site/SiteHeaderMenu.tsx b/src/components/site/SiteHeaderMenu.tsx index c00e53bf..69dd744c 100644 --- a/src/components/site/SiteHeaderMenu.tsx +++ b/src/components/site/SiteHeaderMenu.tsx @@ -97,7 +97,7 @@ export const SiteHeaderMenu = ({ icon: , url: `${getSiteLink({ subdomain: handle || "", - })}/feed?format=xml`, + })}/feed`, out: true, }, ...(hideSearch diff --git a/src/middleware.ts b/src/middleware.ts index 5daa86c8..61577ba8 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -41,10 +41,7 @@ export default async function middleware(req: NextRequest) { pathname === "/atom.xml" || pathname === "/feed/xml" ) { - return NextResponse.redirect( - `https://${req.headers.get("host")}/feed?format=xml`, - 301, - ) + return NextResponse.redirect(`https://${req.headers.get("host")}/feed`, 301) } console.log(`${req.method} ${req.nextUrl.pathname}${req.nextUrl.search}`)