fix(server): seri verisi için aday anahtar kontrolü ekle. TV Shows da dizi bölümlerinin tamamının listelenmesini sağla.

ensureSeriesData fonksiyonuna, veri bulunamadığında candidateKeys listesini kullanarak alternatif dosya yollarının kontrol edilmesi ve ilgili metadatanın yüklenmesi sağlandı.
This commit is contained in:
2026-01-11 14:45:45 +03:00
parent 6cb415687a
commit c945458a81
2 changed files with 25 additions and 9 deletions

View File

@@ -1184,7 +1184,7 @@ async function openVideoAtIndex(index) {
.tv-overlay-content { .tv-overlay-content {
position: relative; position: relative;
width: min(1040px, 94vw); width: min(1040px, 94vw);
max-height: 90vh; max-height: 95vh;
border-radius: 20px; border-radius: 20px;
overflow: hidden; overflow: hidden;
background: rgba(12, 12, 12, 0.5); background: rgba(12, 12, 12, 0.5);
@@ -1222,7 +1222,7 @@ async function openVideoAtIndex(index) {
} }
.detail-poster { .detail-poster {
flex: 0 0 230px; flex: 0 0 183px;
} }
.detail-poster-img { .detail-poster-img {
@@ -1363,7 +1363,7 @@ async function openVideoAtIndex(index) {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 14px; gap: 14px;
max-height: 260px; max-height: 520px;
overflow-y: auto; overflow-y: auto;
padding-right: 6px; padding-right: 6px;
padding-left: 2px; padding-left: 2px;
@@ -1691,11 +1691,11 @@ async function openVideoAtIndex(index) {
} }
.detail-poster { .detail-poster {
flex: 0 0 200px; flex: 0 0 72px;
} }
.episode-list { .episode-list {
max-height: 240px; max-height: 440px;
} }
} }
@@ -1716,7 +1716,7 @@ async function openVideoAtIndex(index) {
} }
.detail-poster { .detail-poster {
flex: 0 0 160px; flex: 0 0 58px;
} }
.detail-title { .detail-title {
@@ -1732,7 +1732,7 @@ async function openVideoAtIndex(index) {
} }
.episode-list { .episode-list {
max-height: 200px; max-height: 360px;
gap: 12px; gap: 12px;
} }
@@ -1789,7 +1789,7 @@ async function openVideoAtIndex(index) {
} }
.detail-poster { .detail-poster {
flex: 0 0 120px; flex: 0 0 43px;
} }
.detail-title { .detail-title {
@@ -1817,7 +1817,7 @@ async function openVideoAtIndex(index) {
} }
.episode-list { .episode-list {
max-height: 180px; max-height: 320px;
gap: 10px; gap: 10px;
} }

View File

@@ -2998,6 +2998,22 @@ async function ensureSeriesData(
} }
} }
if (!seriesData && candidateKeys.length) {
for (const key of candidateKeys) {
const candidatePaths = tvSeriesPathsByKey(key);
if (!fs.existsSync(candidatePaths.metadata)) continue;
try {
seriesData = JSON.parse(fs.readFileSync(candidatePaths.metadata, "utf-8")) || {};
existingPaths = candidatePaths;
break;
} catch (err) {
console.warn(
`⚠️ series.json okunamadı (${candidatePaths.metadata}): ${err.message}`
);
}
}
}
const legacyPaths = tvSeriesPaths(normalizedRoot); const legacyPaths = tvSeriesPaths(normalizedRoot);
if (!seriesData && fs.existsSync(legacyPaths.metadata)) { if (!seriesData && fs.existsSync(legacyPaths.metadata)) {
try { try {