Media Favoriten: Dequittierung für Admin + Pushover-Info an User
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -784,7 +784,7 @@ function FavoritenKalender({ onOpenModal }) {
|
||||
{!!f.acknowledged && <span style={{marginLeft:6}}>✓</span>}
|
||||
</div>
|
||||
</div>
|
||||
{!f.acknowledged && (
|
||||
{!f.acknowledged ? (
|
||||
<button onClick={async e=>{e.stopPropagation();
|
||||
await api(`/tools/media/favorites/${f.id}/acknowledge`,{method:'POST',body:{}});
|
||||
setAllFavs(prev=>prev.map(x=>x.id===f.id?{...x,acknowledged:1}:x));
|
||||
@@ -792,6 +792,15 @@ function FavoritenKalender({ onOpenModal }) {
|
||||
borderRadius:6,padding:'3px 10px',color:'#f59e0b',fontFamily:'monospace',fontSize:9,cursor:'pointer',flexShrink:0}}>
|
||||
✓
|
||||
</button>
|
||||
) : (
|
||||
<button onClick={async e=>{e.stopPropagation();
|
||||
await api(`/tools/media/favorites/${f.id}/unacknowledge`,{method:'POST',body:{}});
|
||||
setAllFavs(prev=>prev.map(x=>x.id===f.id?{...x,acknowledged:0}:x));
|
||||
}} title="Quittierung rückgängig"
|
||||
style={{background:'transparent',border:'1px solid rgba(255,255,255,0.1)',
|
||||
borderRadius:6,padding:'3px 8px',color:'rgba(255,255,255,0.25)',fontFamily:'monospace',fontSize:9,cursor:'pointer',flexShrink:0}}>
|
||||
↩
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user