This commit is contained in:
2026-08-11 17:59:24 +02:00
parent e894795fe0
commit 07a874ec99
4 changed files with 42 additions and 9 deletions

View File

@@ -807,8 +807,8 @@ export default router => {
}
}
// Broadcast new_item event for live grid updates (only if auto-approved and public)
if (!isApprovalRequired && targetVisibility === 0) {
// Broadcast new_item event for live grid updates (only if auto-approved)
if (!isApprovalRequired) {
try {
await db`SELECT pg_notify('new_item', ${JSON.stringify({
id: itemid,
@@ -817,7 +817,9 @@ export default router => {
username: session.user,
display_name: session.display_name || null,
tag_id: effectiveRating ? (effectiveRating === 'sfw' ? 1 : (effectiveRating === 'nsfw' ? 2 : (cfg.nsfl_tag_id || 3))) : 0,
is_oc: !!is_oc
is_oc: !!is_oc,
slug: itemSlug,
visibility: targetVisibility
})})`;
} catch (err) {
console.error('[UPLOAD-URL] new_item notify failed:', err);

View File

@@ -213,10 +213,13 @@ db.listen('motd', (payload) => {
db.listen('new_item', (payload) => {
try {
const data = JSON.parse(payload);
if (data.visibility && data.visibility !== 0) return;
console.log(`[SSE] Broadcasting new_item (id: ${data.id}) to ${clients.size} clients`);
const itemVis = data.visibility || 0;
console.log(`[SSE] Broadcasting new_item (id: ${data.id}, visibility: ${itemVis}) to connected clients`);
for (const client of clients) {
client.send({ type: 'new_item', data });
const isOwner = client.username && data.username && client.username.toLowerCase() === data.username.toLowerCase();
if (itemVis === 0 || isOwner) {
client.send({ type: 'new_item', data });
}
}
} catch (e) {
console.error('New item broadcast error:', e);

View File

@@ -754,8 +754,8 @@ export const handleUpload = async (req, res, self) => {
}
}
// Broadcast new_item event for live grid updates (only if auto-approved and public)
if (!manualApproval && targetVisibility === 0) {
// Broadcast new_item event for live grid updates (only if auto-approved)
if (!manualApproval) {
try {
await db`SELECT pg_notify('new_item', ${JSON.stringify({
id: itemid,
@@ -764,7 +764,9 @@ export const handleUpload = async (req, res, self) => {
username: req.session.user,
display_name: req.session.display_name || null,
tag_id: effectiveRating ? (effectiveRating === 'sfw' ? 1 : (effectiveRating === 'nsfw' ? 2 : (cfg.nsfl_tag_id || 3))) : 0,
is_oc: !!is_oc
is_oc: !!is_oc,
slug: itemSlug,
visibility: targetVisibility
})})`;
} catch (err) {
console.error('[UPLOAD] new_item notify failed:', err);