A simple AtProto app to read pet.mewsse.link records on my PDS.

Fix cache and pagination

Mewsse 50142367 77054784

Changed files
+9 -3
assets
src
+1 -1
assets/style.css
···
width: 100%;
}
-
.item.nsfw .aside:hover img, .item.nsfw .aside input:checked + img {
+
.item.nsfw:hover img {
cursor: pointer;
filter: blur(0rem);
}
+7 -1
src/lib/router.ts
···
const ext = path.extname(tryFile)
const type = mime.getType(ext) || 'application/octet-stream'
+
const etag = `${stat.size.toString(16)}-${stat.mtime.getTime().toString(16)}`
res.setHeader('Content-Type', type)
res.setHeader('Content-Length', stat.size)
-
res.setHeader('Etag', `${stat.size.toString(16)}-${stat.mtime.getTime().toString(16)}`)
+
res.setHeader('Cache-Control', `max-age=${60*60*24*7}, must-revalidate`)
+
res.setHeader('Etag', etag)
res.setHeader('Last-Modified', stat.mtime.toUTCString())
logger.info(`${req.method} ${req.url}`)
if (req.method === "HEAD") {
+
if (req.headers["if-none-match"] && req.headers["if-none-match"] === etag) {
+
res.statusCode = 304
+
}
+
res.end()
return
}
+1 -1
src/routes.ts
···
const body = eta.render("./main", {
items: links,
pages: Array.from(Array(pages).keys()),
-
selected: parseInt(params?.page || "0", 10)
+
selected: parseInt(params?.page || "0", 10) - 1
})
res.writeHead(200, { 'Content-Type': 'text/html' })