public no untagged
This commit is contained in:
@@ -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)`;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user