fix rating and fav
This commit is contained in:
@@ -200,27 +200,27 @@ export default new class {
|
||||
const tagged = +(await db`
|
||||
select count(*) as total
|
||||
from "items"
|
||||
where id in (select item_id from tags_assign group by item_id) and active = true
|
||||
where id in (select item_id from tags_assign group by item_id) and active = true and is_deleted = false
|
||||
`)[0].total;
|
||||
const untagged = +(await db`
|
||||
select count(*) as total
|
||||
from "items"
|
||||
where not exists (select 1 from tags_assign where item_id = items.id) and active = true
|
||||
where not exists (select 1 from tags_assign where item_id = items.id) and active = true and is_deleted = false
|
||||
`)[0].total;
|
||||
const sfw = +(await db`
|
||||
select count(*) as total
|
||||
from "items"
|
||||
where id in (select item_id from tags_assign where tag_id = 1 group by item_id) and active = true
|
||||
where id in (select item_id from tags_assign where tag_id = 1 group by item_id) and active = true and is_deleted = false
|
||||
`)[0].total;
|
||||
const nsfw = +(await db`
|
||||
select count(*) as total
|
||||
from "items"
|
||||
where id in (select item_id from tags_assign where tag_id = 2 group by item_id) and active = true
|
||||
where id in (select item_id from tags_assign where tag_id = 2 group by item_id) and active = true and is_deleted = false
|
||||
`)[0].total;
|
||||
const nsfl = cfg.enable_nsfl ? +(await db`
|
||||
select count(*) as total
|
||||
from "items"
|
||||
where id in (select item_id from tags_assign where tag_id = ${cfg.nsfl_tag_id || 3} group by item_id) and active = true
|
||||
where id in (select item_id from tags_assign where tag_id = ${cfg.nsfl_tag_id || 3} group by item_id) and active = true and is_deleted = false
|
||||
`)[0].total : 0;
|
||||
const deleted = +(await db`
|
||||
select count(*) as total
|
||||
|
||||
@@ -845,12 +845,16 @@ export default (router, tpl) => {
|
||||
await fs.unlink(path.join(cfg.paths.ca, `${item.id}.webp`)).catch(() => { });
|
||||
}
|
||||
|
||||
await db`DELETE FROM tags_assign WHERE item_id = ${item.id}`;
|
||||
await db`UPDATE items SET is_deleted = true, is_purged = true, active = false WHERE id = ${item.id}`;
|
||||
count++;
|
||||
} catch (e) {
|
||||
console.error(`[CLEANUP] Failed to delete item ${item.id}:`, e.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up any remaining orphan tag assignments for deleted or inactive items
|
||||
await db`DELETE FROM tags_assign WHERE item_id IN (SELECT id FROM items WHERE is_deleted = true OR active = false)`;
|
||||
}
|
||||
|
||||
// Log it in audit
|
||||
|
||||
@@ -115,10 +115,13 @@ export default (router, tpl) => {
|
||||
try {
|
||||
const slug = '%' + lib.slugify(q) + '%';
|
||||
const rows = await db`
|
||||
SELECT t.tag, t.normalized, COUNT(ta.item_id) as uses
|
||||
SELECT t.tag, t.normalized, COUNT(DISTINCT items.id) as uses
|
||||
FROM tags t
|
||||
JOIN tags_assign ta ON ta.tag_id = t.id
|
||||
JOIN items ON items.id = ta.item_id
|
||||
WHERE t.id > 2
|
||||
AND items.active = true
|
||||
AND items.is_deleted = false
|
||||
AND lower(t.normalized) ILIKE ${slug}
|
||||
GROUP BY t.tag, t.normalized
|
||||
ORDER BY uses DESC
|
||||
|
||||
@@ -33,6 +33,7 @@ export async function regenerateTagImage(tag, mode) {
|
||||
${modeFilter}
|
||||
WHERE (t.tag = ${tag} OR t.normalized = ${tag})
|
||||
AND i.active = true
|
||||
AND i.is_deleted = false
|
||||
AND COALESCE(i.visibility, 0) = 0
|
||||
ORDER BY RANDOM()
|
||||
LIMIT 3
|
||||
|
||||
@@ -51,6 +51,7 @@ export default (router, tpl) => {
|
||||
JOIN tags_assign ta ON t.id = ta.tag_id
|
||||
JOIN items ON items.id = ta.item_id
|
||||
WHERE items.active = true
|
||||
AND items.is_deleted = false
|
||||
AND COALESCE(items.visibility, 0) = 0
|
||||
AND t.id NOT IN (1, 2)
|
||||
AND ${db.unsafe(modequery)}
|
||||
@@ -75,6 +76,7 @@ export default (router, tpl) => {
|
||||
JOIN items ON items.id = ta.item_id
|
||||
WHERE t.normalized LIKE '%' || ${tag.normalized} || '%'
|
||||
AND items.active = true
|
||||
AND items.is_deleted = false
|
||||
AND COALESCE(items.visibility, 0) = 0
|
||||
AND ${db.unsafe(modequery)}
|
||||
${restrictedFilter}
|
||||
|
||||
@@ -51,6 +51,7 @@ export default (router, tpl) => {
|
||||
JOIN tags_assign ta ON t.id = ta.tag_id
|
||||
JOIN items ON items.id = ta.item_id
|
||||
WHERE items.active = true
|
||||
AND items.is_deleted = false
|
||||
AND COALESCE(items.visibility, 0) = 0
|
||||
AND t.id NOT IN (1, 2)
|
||||
AND ta.user_id = ${userId}
|
||||
@@ -76,6 +77,7 @@ export default (router, tpl) => {
|
||||
JOIN items ON items.id = ta.item_id
|
||||
WHERE t.normalized LIKE '%' || ${tag.normalized} || '%'
|
||||
AND items.active = true
|
||||
AND items.is_deleted = false
|
||||
AND COALESCE(items.visibility, 0) = 0
|
||||
AND ta.user_id = ${userId}
|
||||
AND ${db.unsafe(modequery)}
|
||||
|
||||
Reference in New Issue
Block a user