Revert "trying to fix tag cache"

This reverts commit b0f648b71c.
This commit is contained in:
2026-05-13 02:23:20 +02:00
parent b0f648b71c
commit d85d8276ed
2 changed files with 21 additions and 36 deletions

View File

@@ -26,17 +26,12 @@ export async function regenerateTagImage(tag, mode) {
}
const items = await db`
SELECT id FROM (
SELECT i.id
FROM items i
JOIN tags_assign ta ON ta.item_id = i.id
JOIN tags t ON t.id = ta.tag_id
${modeFilter}
WHERE (t.tag = ${tag} OR t.normalized = ${tag})
AND i.active = true
AND i.is_deleted = false
LIMIT 100
) pool
SELECT i.id
FROM items i
JOIN tags_assign ta ON ta.item_id = i.id
JOIN tags t ON t.id = ta.tag_id
${modeFilter}
WHERE (t.tag = ${tag} OR t.normalized = ${tag}) AND i.active = true
ORDER BY RANDOM()
LIMIT 3
`;
@@ -144,20 +139,16 @@ function generateFallbackSvg(tag) {
}
export default (router, tpl) => {
router.get(/^\/tag_image\/(?<tag>[^?]+)$/, async (req, res) => {
router.get(/^\/tag_image\/(?<tag>.+)$/, async (req, res) => {
const tag = decodeURIComponent(req.params.tag);
// Parse query parameters robustly
// Parse query parameters
let query = {};
try {
if (typeof req.url === 'string') {
const parsedUrl = url.parse(req.url, true);
query = parsedUrl.query;
} else if (req.url && req.url.qs) {
query = req.url.qs;
}
} catch (e) {
console.error('[TAG_IMAGE] Query parse failed:', e);
if (typeof req.url === 'string') {
const parsedUrl = url.parse(req.url, true);
query = parsedUrl.query;
} else {
query = req.url.qs || {};
}
const mode = query.m ? parseInt(query.m) : (req.mode ?? 0);
@@ -172,8 +163,7 @@ export default (router, tpl) => {
'Content-Type': 'image/webp',
'Cache-Control': `public, max-age=${CACHE_MAX_AGE}`
});
const content = await fs.readFile(cachePath);
return res.end(content);
return res.end(await fs.readFile(cachePath));
}
} catch (e) {
// Cache miss, proceed to generation
@@ -182,16 +172,11 @@ export default (router, tpl) => {
// Generate on-demand
const generated = await regenerateTagImage(tag, mode);
if (generated) {
try {
const content = await fs.readFile(generated);
res.writeHead(200, {
'Content-Type': 'image/webp',
'Cache-Control': `public, max-age=${CACHE_MAX_AGE}`
});
return res.end(content);
} catch (err) {
console.error(`[TAG_IMAGE] Failed to read generated file ${generated}:`, err);
}
res.writeHead(200, {
'Content-Type': 'image/webp',
'Cache-Control': `public, max-age=${CACHE_MAX_AGE}`
});
return res.end(await fs.readFile(generated));
}
// Fallback to deterministic SVG