diff --git a/backend/src/tools/media/routes.js b/backend/src/tools/media/routes.js index af26fe8..dec648b 100644 --- a/backend/src/tools/media/routes.js +++ b/backend/src/tools/media/routes.js @@ -918,6 +918,55 @@ router.get('/streaming/debug-compare/:providerId', authenticate, requireAdmin, a } catch(e) { res.status(500).json({ error: e.message }); } }); +// Debug: Neuerscheinungen-Discover-Query roh prüfen (ohne Filterung danach) +router.get('/streaming/debug-new/:providerId', authenticate, requireAdmin, async (req, res) => { + try { + const provider = STREAMING_PROVIDERS.find(p => p.id === req.params.providerId); + if (!provider) return res.status(404).json({ error: 'Unbekannter Anbieter' }); + + const since = (() => { + const d = new Date(); + d.setDate(d.getDate() - 21); + return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`; + })(); + const today = (() => { + const d = new Date(); + return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`; + })(); + + async function raw(mediaKind, sortBy) { + const path = mediaKind === 'movie' ? '/discover/movie' : '/discover/tv'; + const params = { + watch_region: 'DE', + with_watch_providers: provider.tmdbId, + with_watch_monetization_types: 'flatrate', + sort_by: sortBy, + ...(mediaKind === 'movie' + ? { 'primary_release_date.gte': since, 'primary_release_date.lte': today } + : { 'first_air_date.gte': since, 'first_air_date.lte': today }), + }; + const data = await tmdb(path, { ...params, page: 1 }); + return { + total_results: data.total_results, + sample: (data.results||[]).slice(0,10).map(m => ({ + title: m.title||m.name, lang: m.original_language, + vote_count: m.vote_count, popularity: m.popularity, + date: m.release_date||m.first_air_date, + })), + }; + } + + const [movieByPop, movieByDate, tvByPop, tvByDate] = await Promise.all([ + raw('movie', 'popularity.desc'), + raw('movie', 'primary_release_date.desc'), + raw('tv', 'popularity.desc'), + raw('tv', 'first_air_date.desc'), + ]); + + res.json({ provider: provider.label, since, today, movieByPop, movieByDate, tvByPop, tvByDate }); + } catch(e) { res.status(500).json({ error: e.message }); } +}); + router.get('/streaming/debug/:providerId', authenticate, requireAdmin, async (req, res) => { try { const provider = STREAMING_PROVIDERS.find(p => p.id === req.params.providerId);