fixes for extension sources & tweaks

This commit is contained in:
2025-11-29 22:11:42 +01:00
parent 655ab9c987
commit 7625c52017
17 changed files with 1103 additions and 463 deletions

View File

@@ -134,12 +134,25 @@ async function loadAnime() {
}
}
if (data.nextAiringEpisode?.episode) {
totalEpisodes = data.nextAiringEpisode.episode - 1;
} else if (data.episodes) {
totalEpisodes = data.episodes;
let extensionEpisodes = [];
if (extensionName) {
extensionEpisodes = await loadExtensionEpisodes(animeId, extensionName);
if (extensionEpisodes.length > 0) {
totalEpisodes = extensionEpisodes.length;
} else {
totalEpisodes = 1;
}
} else {
totalEpisodes = 12;
// MODO NORMAL (AniList)
if (data.nextAiringEpisode?.episode) {
totalEpisodes = data.nextAiringEpisode.episode - 1;
} else if (data.episodes) {
totalEpisodes = data.episodes;
} else {
totalEpisodes = 12;
}
}
totalEpisodes = Math.min(Math.max(totalEpisodes, 1), 5000);
@@ -153,6 +166,27 @@ async function loadAnime() {
}
}
async function loadExtensionEpisodes(animeId, extName) {
try {
const url = `/api/anime/${animeId}/episodes?ext=${extName}`;
const res = await fetch(url);
const data = await res.json();
if (!Array.isArray(data)) return [];
return data.map(ep => ({
id: ep.id,
number: ep.number,
title: ep.title || `Episode ${ep.number}`,
url: ep.url
}));
} catch (err) {
console.error("Failed to fetch extension episodes:", err);
return [];
}
}
function handleDescription(text) {
const tmp = document.createElement("DIV");
tmp.innerHTML = text;