fix: TV xREL - imdb_id aus external_ids, kein Jahresfilter für Serien, separater Cache-Key
This commit is contained in:
@@ -160,7 +160,7 @@ async function xrelFetch(path, params = {}) {
|
||||
// Einzige Funktion für xREL: benutzt immer die ext_info_id und gibt max 5 deutsche ≤1080p Releases
|
||||
// Cache-Key: tmdb_id (immer eindeutig, konsistent zwischen Badge und Modal)
|
||||
async function getXrelData(tmdbId, imdbId, title, originalTitle, movieYear, mediaType='movie') {
|
||||
const cacheKey = `xrel:tmdb:${tmdbId}`;
|
||||
const cacheKey = `xrel:${mediaType}:${tmdbId}`;
|
||||
const cached = cacheGet(cacheKey);
|
||||
if (cached !== undefined) return cached;
|
||||
|
||||
@@ -236,7 +236,8 @@ async function getXrelData(tmdbId, imdbId, title, originalTitle, movieYear, medi
|
||||
// Alte Filme (< 2015) haben oft Releases die Jahre später erschienen → nicht filtern
|
||||
const releaseYearOk = (releaseDate) => {
|
||||
if (!movieYear || !releaseDate) return true;
|
||||
if (movieYear < 2015) return true; // alte Filme: alles erlaubt
|
||||
if (movieYear < 2015) return true;
|
||||
if (mediaType === 'tv') return true; // TV-Serien: kein Jahresfilter (Staffeln erscheinen über Jahre)
|
||||
const y = parseInt(releaseDate.slice(0,4));
|
||||
return Math.abs(y - movieYear) <= 3;
|
||||
};
|
||||
@@ -364,9 +365,10 @@ router.get('/search', authenticate, async (req, res) => {
|
||||
// TV-Serie Detail
|
||||
router.get('/tv/:id', authenticate, async (req, res) => {
|
||||
try {
|
||||
const [detail, genreMap] = await Promise.all([
|
||||
const [detail, genreMap, extIds] = await Promise.all([
|
||||
tmdb(`/tv/${req.params.id}`, { append_to_response: 'credits,content_ratings' }),
|
||||
getGenreMap(),
|
||||
tmdb(`/tv/${req.params.id}/external_ids`).catch(()=>({})),
|
||||
]);
|
||||
// FSK aus content_ratings (DE)
|
||||
let fsk = '';
|
||||
@@ -387,6 +389,7 @@ router.get('/tv/:id', authenticate, async (req, res) => {
|
||||
genres: (detail.genres||[]).map(g=>g.name),
|
||||
fsk,
|
||||
cast: (detail.credits?.cast||[]).slice(0,8).map(c => c.name),
|
||||
imdb_id: extIds.imdb_id || '',
|
||||
number_of_seasons: detail.number_of_seasons,
|
||||
number_of_episodes: detail.number_of_episodes,
|
||||
status: detail.status,
|
||||
|
||||
Reference in New Issue
Block a user