redirecter for ao3 that adds opengraph metadata

fix missing descriptions on chapter pages

Changed files
+7 -16
src
app
series
[seriesId]
works
[workId]
chapters
[chapterId]
+1 -4
src/app/series/[seriesId]/page.js
···
return {
title: title,
description: description,
-
metadataBase: new URL('https://'+process.env.DOMAIN),
-
openGraph: {
-
description: description
-
}
+
metadataBase: new URL('https://'+process.env.DOMAIN)
}
}
+5 -8
src/app/works/[workId]/chapters/[chapterId]/page.js
···
// read route params
const { workId, chapterId } = await params
const work = await getWork({workId: workId, chapterId: chapterId})
+
const parentWork = await getWork({workId: workId})
const authors = work.authors.map((a) => {
if (a.anonymous) {
return "Anonymous"
···
const fandoms = work.fandoms
const fandomString = fandoms.length > 4 ? fandoms.slice(0, 4).join(", ")+" (+"+(fandoms.length - 4)+")" : (fandoms.length > 1 ? fandoms.slice(0, -1).join(", ")+" & "+fandoms.slice(-1)[0] : fandoms[0])
const title = `${work.title} by ${authorString}, Chapter ${work.chapterInfo.index}${work.chapterInfo.name ? ": "+work.chapterInfo.name : ''} - ${fandomString}`
-
const summary = work.chapterInfo && work.chapterInfo.summary ? work.chapterInfo.summary : work.summary
+
const summary = work.chapterInfo && work.chapterInfo.summary ? work.chapterInfo.summary : parentWork.summary
const summaryDOM = new DOM(summary, {decodeEntities: true});
+
console.log(summary)
const description = summaryDOM.innerHTML.replace(/\<br(?: \/)?\>/g, "\n").replace(
/(<([^>]+)>)/ig,
"",
···
return {
title: title,
description: description,
-
metadataBase: new URL('https://'+process.env.DOMAIN),
-
openGraph: {
-
description: description
-
}
+
metadataBase: new URL('https://'+process.env.DOMAIN)
}
}
export default async function Page({ params, searchParams }) {
const { workId, chapterId } = await params
return (
-
<div dangerouslySetInnerHTML={{__html: `<script type="text/javascript">
-
window.location.replace("https://archiveofourown.org/works/${workId}/chapters/${chapterId}");
-
</script>`}}></div>
+
<div></div>
)
}
+1 -4
src/app/works/[workId]/page.js
···
return {
title: title,
description: description,
-
metadataBase: new URL('https://'+process.env.DOMAIN),
-
openGraph: {
-
description: description
-
}
+
metadataBase: new URL('https://'+process.env.DOMAIN)
}
}