From 8f8e49f749c5fe3ff90d01697ed4e13366e20c60 Mon Sep 17 00:00:00 2001 From: Dicken Date: Wed, 24 Jun 2026 22:28:22 +0200 Subject: [PATCH] =?UTF-8?q?Media=20Favoriten:=20Dequittierung=20f=C3=BCr?= =?UTF-8?q?=20Admin=20+=20Pushover-Info=20an=20User?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/tools/media/routes.js | 25 +++++++++++++++++++++++++ frontend/src/tools/media.jsx | 11 ++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/backend/src/tools/media/routes.js b/backend/src/tools/media/routes.js index 82edddc..5ad5e81 100644 --- a/backend/src/tools/media/routes.js +++ b/backend/src/tools/media/routes.js @@ -960,6 +960,31 @@ router.post('/favorites/:id/acknowledge', authenticate, requireAdmin, (req, res) } catch {} }); +// POST /favorites/:id/unacknowledge – Admin: Quittierung rückgängig machen +router.post('/favorites/:id/unacknowledge', authenticate, requireAdmin, (req, res) => { + const fav = db.prepare('SELECT * FROM movie_favorites WHERE id=?').get(req.params.id); + if (!fav) return res.status(404).json({ error: 'Nicht gefunden' }); + db.prepare('UPDATE movie_favorites SET acknowledged=0, acknowledged_at=NULL, user_notified=0 WHERE id=?').run(fav.id); + res.json({ ok: true }); + // Pushover an den User — Quittierung zurückgezogen (fire & forget) + try { + const poCfg = db.prepare('SELECT user_key, app_token FROM pushover_settings WHERE user_id=?').get(fav.user_id); + if (poCfg?.app_token && poCfg?.user_key) { + fetch('https://api.pushover.net/1/messages.json', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + token: poCfg.app_token, + user: poCfg.user_key, + title: '↩ Favorit zurückgezogen', + message: `Die Bestätigung für "${fav.title}" wurde vom Admin zurückgezogen.`, + priority: 0, + }), + }).catch(() => {}); + } + } catch {} +}); + // Admin: ALLE verfügbaren Watch-Provider für Deutschland live von TMDb holen // Admin: Streaming-Top10-Cache leeren (z.B. nach Logik-Änderungen) // Debug: rohe TMDb-Treffer pro Anbieter/Schwelle prüfen diff --git a/frontend/src/tools/media.jsx b/frontend/src/tools/media.jsx index 98951c6..7d104c8 100644 --- a/frontend/src/tools/media.jsx +++ b/frontend/src/tools/media.jsx @@ -784,7 +784,7 @@ function FavoritenKalender({ onOpenModal }) { {!!f.acknowledged && } - {!f.acknowledged && ( + {!f.acknowledged ? ( + ) : ( + )} ))}