public no untagged

This commit is contained in:
2026-08-13 21:33:08 +02:00
parent 9ec07e8e6c
commit 22db479bc2
7 changed files with 28 additions and 20 deletions
+7 -6
View File
@@ -720,7 +720,7 @@ export default router => {
const newest = (await db`select max(id) as id from "items"`)[0]?.id || 0;
const oldest = (await db`select min(id) as id from "items"`)[0]?.id || 0;
const modequery = lib.getMode(opt.mode);
const modequery = f0cklib.computeBaseMode(opt.mode, null, req.session);
const rows = (await db`
select "items".id, "items".mime, coalesce("tags_assign".tag_id, 0) as tag_id
@@ -796,18 +796,19 @@ export default router => {
let guestTagFilter = db``;
if (!session) {
const itemTags = await db`SELECT tag_id FROM tags_assign WHERE item_id = ${+id}`;
const isTagged = itemTags.length > 0;
if (!isTagged && !cfg.websrv.public_untagged) {
const nsflId = parseInt(cfg.nsfl_tag_id, 10) || 3;
const itemRatingTags = await db`SELECT tag_id FROM tags_assign WHERE item_id = ${+id} AND tag_id IN (1, 2, ${nsflId})`;
const hasRatingTag = itemRatingTags.length > 0;
if (!hasRatingTag && !cfg.websrv.public_untagged) {
return res.json({ success: false, msg: 'no items found' });
}
if (cfg.websrv.public_nsfw) {
guestTagFilter = cfg.websrv.public_untagged
? db`and (id in (select item_id from tags_assign where tag_id in (1, 2)) or not exists (select 1 from tags_assign where item_id = items.id))`
? db`and (id in (select item_id from tags_assign where tag_id in (1, 2)) or not exists (select 1 from tags_assign where item_id = items.id and tag_id in (1, 2, ${nsflId})))`
: db`and id in (select item_id from tags_assign where tag_id in (1, 2))`;
} else {
guestTagFilter = cfg.websrv.public_untagged
? db`and (id in (select item_id from tags_assign where tag_id = 1) or not exists (select 1 from tags_assign where item_id = items.id))`
? db`and (id in (select item_id from tags_assign where tag_id = 1) or not exists (select 1 from tags_assign where item_id = items.id and tag_id in (1, 2, ${nsflId})))`
: db`and id in (select item_id from tags_assign where tag_id = 1)`;
}
}