fix: Jahresfilter deaktiviert im Suchen-Tab (noYearFilter=year=0)
This commit is contained in:
@@ -232,11 +232,11 @@ async function getXrelData(tmdbId, imdbId, title, originalTitle, movieYear) {
|
|||||||
|
|
||||||
const results = [];
|
const results = [];
|
||||||
|
|
||||||
// Jahresfilter: Release muss innerhalb von 2 Jahren vor/nach Filmjahr liegen
|
// Jahresfilter: nur für Filme ab 2015 anwenden
|
||||||
// Rembrandt 2003 → Release 2014 = 11 Jahre entfernt → geblockt
|
// Alte Filme (< 2015) haben oft Releases die Jahre später erschienen → nicht filtern
|
||||||
// MOTU 2026 → Release 2025 = 1 Jahr vorher → ok
|
|
||||||
const releaseYearOk = (releaseDate) => {
|
const releaseYearOk = (releaseDate) => {
|
||||||
if (!movieYear || !releaseDate) return true;
|
if (!movieYear || !releaseDate) return true;
|
||||||
|
if (movieYear < 2015) return true; // alte Filme: alles erlaubt
|
||||||
const y = parseInt(releaseDate.slice(0,4));
|
const y = parseInt(releaseDate.slice(0,4));
|
||||||
return Math.abs(y - movieYear) <= 3;
|
return Math.abs(y - movieYear) <= 3;
|
||||||
};
|
};
|
||||||
@@ -408,9 +408,9 @@ router.get('/movie/:id/xrel', authenticate, async (req, res) => {
|
|||||||
origTitle = detail.original_title || null;
|
origTitle = detail.original_title || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filmjahr aus Query-Param (vom Frontend mitgeschickt aus detail.release_date)
|
// Filmjahr aus Query-Param; year=0 oder fehlt → kein Jahresfilter
|
||||||
let filmYear = null;
|
let filmYear = null;
|
||||||
if (req.query.year) filmYear = parseInt(req.query.year);
|
if (req.query.year && req.query.year !== '0') filmYear = parseInt(req.query.year);
|
||||||
const data = await getXrelData(req.params.id, imdbId, title, origTitle, filmYear);
|
const data = await getXrelData(req.params.id, imdbId, title, origTitle, filmYear);
|
||||||
const releases = Array.isArray(data) ? data : (data.releases || []);
|
const releases = Array.isArray(data) ? data : (data.releases || []);
|
||||||
const xrel_dates = Array.isArray(data) ? [] : (data.xrel_dates || []);
|
const xrel_dates = Array.isArray(data) ? [] : (data.xrel_dates || []);
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ export default function Media({ toast, mobile }) {
|
|||||||
onClose={() => setModal(null)}
|
onClose={() => setModal(null)}
|
||||||
mobile={mobile}
|
mobile={mobile}
|
||||||
onHasXrel={id => setXrelIds(prev => new Set([...prev, id]))}
|
onHasXrel={id => setXrelIds(prev => new Set([...prev, id]))}
|
||||||
|
noYearFilter={activeTool === 'suchen'}
|
||||||
/>,
|
/>,
|
||||||
document.body
|
document.body
|
||||||
)}
|
)}
|
||||||
@@ -552,7 +553,7 @@ function FavoritenKalender({ onOpenModal }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ── Film-Detail-Modal (via Portal) ────────────────────────────────────────────
|
// ── Film-Detail-Modal (via Portal) ────────────────────────────────────────────
|
||||||
function MovieModal({ tmdbId, onClose, mobile, onHasXrel }) {
|
function MovieModal({ tmdbId, onClose, mobile, onHasXrel, noYearFilter }) {
|
||||||
const [detail, setDetail] = useState(null);
|
const [detail, setDetail] = useState(null);
|
||||||
const [xrel, setXrel] = useState(null); // null=nicht gesucht, []=gesucht
|
const [xrel, setXrel] = useState(null); // null=nicht gesucht, []=gesucht
|
||||||
const [xrelDates, setXrelDates] = useState([]);
|
const [xrelDates, setXrelDates] = useState([]);
|
||||||
@@ -576,7 +577,7 @@ function MovieModal({ tmdbId, onClose, mobile, onHasXrel }) {
|
|||||||
title: d.title || '',
|
title: d.title || '',
|
||||||
orig: d.original_title || '',
|
orig: d.original_title || '',
|
||||||
imdb_id: d.imdb_id || '',
|
imdb_id: d.imdb_id || '',
|
||||||
year: d.release_date ? d.release_date.slice(0,4) : '',
|
year: noYearFilter ? '0' : (d.release_date ? d.release_date.slice(0,4) : ''),
|
||||||
});
|
});
|
||||||
api(`/tools/media/movie/${tmdbId}/xrel?${params}`)
|
api(`/tools/media/movie/${tmdbId}/xrel?${params}`)
|
||||||
.then(r => {
|
.then(r => {
|
||||||
@@ -600,7 +601,7 @@ function MovieModal({ tmdbId, onClose, mobile, onHasXrel }) {
|
|||||||
title: d.title || '',
|
title: d.title || '',
|
||||||
orig: d.original_title || '',
|
orig: d.original_title || '',
|
||||||
imdb_id: d.imdb_id || '',
|
imdb_id: d.imdb_id || '',
|
||||||
year: d.release_date ? d.release_date.slice(0,4) : '',
|
year: noYearFilter ? '0' : (d.release_date ? d.release_date.slice(0,4) : ''),
|
||||||
});
|
});
|
||||||
if (forceRefresh) params.set('refresh', '1');
|
if (forceRefresh) params.set('refresh', '1');
|
||||||
const r = await api(`/tools/media/movie/${tmdbId}/xrel?${params}`);
|
const r = await api(`/tools/media/movie/${tmdbId}/xrel?${params}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user