redirecter for ao3 that adds opengraph metadata

implement theming

Changed files
+8 -6
pages
+8 -6
pages/Image.jsx
···
)
: ''
const fandomString = (data.fandoms.length > 1 ? (data.fandoms.length <= 5 ? data.fandoms.slice(0, -1).join(", ")+" & "+data.fandoms.slice(-1) : data.fandoms.join(", ")+" (+"+(data.fandoms.length - 4)+")") : data.fandoms[0]).toUpperCase()
-
await $`magick -size 1600x900 xc:#990000 tmp/${filename}-base.png`
-
await $`magick -size 1520x300 -background none -font Georgia -pointsize 64 -fill white -gravity SouthWest pango:"<span size='16834'>${fandomString}</span>\n${titleString}${chapterString !== '' ? "\n<span size='36864'><i>"+chapterString+"</i></span>" : ''}" tmp/${filename}-title.png`
-
await $`magick -size 1520x480 xc:white tmp/${filename}-box.png`
-
await $`magick -size 1440x20 -background none -gravity East -font Verdana -pointsize 18 -fill black caption:"https://archiveofourown.org/${addr}" tmp/${filename}-addr.png`
-
await $`magick -size 1440x400 -background none -font Verdana -pointsize 22 -fill black pango:"<b>Wordcount:</b> ${data.words}${chapterCountString} | <b>Rating:</b> ${data.rating}\n\n${summaryFormatted}" tmp/${filename}-desc.png`
-
await $`magick -size 1600x900 xc:#990000 -draw "image over 40,40, 0,0 tmp/${filename}-title.png" -draw "image over 40,380, 0,0 tmp/${filename}-box.png" -draw "image over 80,420 0,0 tmp/${filename}-desc.png" -draw "image over 100,820 0,0 tmp/${filename}-addr.png" imagecache/${filename}.webp`
+
const theme = opts.theme ? opts.theme : 'ao3'
+
const baseFont = opts.baseFont ? opts.baseFont : 'Verdana'
+
const titleFont = opts.titleFont ? opts.titleFont : 'Georgia'
+
await $`magick -size 1520x300 -background none -font ${titleFont} -pointsize 64 -fill ${theme.color} -gravity SouthWest pango:"<span size='16834'>${fandomString}</span>\n${titleString}${chapterString !== '' ? "\n<span size='36864'><i>"+chapterString+"</i></span>" : ''}" tmp/${filename}-title.png`
+
await $`magick -size 1520x480 xc:${theme.descBackground} tmp/${filename}-box.png`
+
await $`magick -size 1440x20 -background none -gravity East -font ${baseFont} -pointsize 18 -fill ${theme.descColor} caption:"https://archiveofourown.org/${addr}" tmp/${filename}-addr.png`
+
await $`magick -size 1440x400 -background none -font ${baseFont} -pointsize 22 -fill ${theme.descColor} pango:"<b>Wordcount:</b> ${data.words}${chapterCountString} | <b>Rating:</b> ${data.rating}\n\n${summaryFormatted}" tmp/${filename}-desc.png`
+
await $`magick -size 1600x900 xc:${theme.background} -draw "image over 40,40, 0,0 tmp/${filename}-title.png" -draw "image over 40,380, 0,0 tmp/${filename}-box.png" -draw "image over 80,420 0,0 tmp/${filename}-desc.png" -draw "image over 100,820 0,0 tmp/${filename}-addr.png" imagecache/${filename}.webp`
await $`rm tmp/${filename}-*.png`
const file = Bun.file(`imagecache/${filename}.webp`)
return Response(await file.arrayBuffer(), {