fixes on watch page

This commit is contained in:
2025-12-02 19:46:37 +01:00
parent 47169a5f66
commit fb3d1a447e
2 changed files with 19 additions and 87 deletions

View File

@@ -80,27 +80,26 @@ async function loadMetadata() {
document.getElementById('detail-season').innerText = season && seasonYear ? `${season} ${seasonYear}` : (season || seasonYear || '--'); document.getElementById('detail-season').innerText = season && seasonYear ? `${season} ${seasonYear}` : (season || seasonYear || '--');
document.getElementById('detail-cover-image').src = coverImage || '/default-cover.jpg'; document.getElementById('detail-cover-image').src = coverImage || '/default-cover.jpg';
if (Array.isArray(characters) && characters.length > 0) { if (extName) {
populateCharacters(characters, isAnilistFormat);
}
if (!extName) {
totalEpisodes = episodesCount;
if (totalEpisodes > 0) {
const simpleEpisodes = [];
for (let i = 1; i <= totalEpisodes; i++) {
simpleEpisodes.push({
number: i,
title: null,
thumbnail: null,
isDub: false
});
}
populateEpisodeCarousel(simpleEpisodes);
}
} else {
await loadExtensionEpisodes(); await loadExtensionEpisodes();
} else {
if (data.nextAiringEpisode?.episode) {
totalEpisodes = data.nextAiringEpisode.episode - 1;
} else if (data.episodes) {
totalEpisodes = data.episodes;
} else {
totalEpisodes = 12;
}
const simpleEpisodes = [];
for (let i = 1; i <= totalEpisodes; i++) {
simpleEpisodes.push({
number: i,
title: null,
thumbnail: null,
isDub: false
});
}
populateEpisodeCarousel(simpleEpisodes);
} }
if (currentEpisode >= totalEpisodes && totalEpisodes > 0) { if (currentEpisode >= totalEpisodes && totalEpisodes > 0) {
@@ -136,57 +135,6 @@ async function loadExtensionEpisodes() {
} }
} }
function populateCharacters(characters, isAnilistFormat) {
const list = document.getElementById('characters-list');
list.classList.remove('characters-list');
list.classList.add('characters-carousel');
list.innerHTML = '';
characters.forEach(item => {
let character, voiceActor;
if (isAnilistFormat) {
character = item.node;
voiceActor = item.voiceActors?.find(va => va.language === 'Japanese' || va.language === 'English');
} else {
character = item;
voiceActor = null;
}
if (!character) return;
const card = document.createElement('div');
card.classList.add('character-card');
const img = document.createElement('img');
img.classList.add('character-card-img');
img.src = character.image?.large || character.image?.medium || character.image || '';
img.alt = character.name?.full || 'Character';
const details = document.createElement('div');
details.classList.add('character-details');
const name = document.createElement('p');
name.classList.add('character-name');
name.innerText = character.name?.full || character.name || '--';
const actor = document.createElement('p');
actor.classList.add('actor-name');
if (voiceActor?.name?.full) {
actor.innerText = `${voiceActor.name.full} (${voiceActor.language})`;
} else {
actor.innerText = 'Voice Actor: N/A';
}
details.appendChild(name);
details.appendChild(actor);
card.appendChild(img);
card.appendChild(details);
list.appendChild(card);
});
}
function populateEpisodeCarousel(episodesData) { function populateEpisodeCarousel(episodesData) {
const carousel = document.getElementById('episode-carousel'); const carousel = document.getElementById('episode-carousel');
carousel.innerHTML = ''; carousel.innerHTML = '';

View File

@@ -98,22 +98,6 @@
</div> </div>
</section> </section>
</main> </main>
<section class="anime-extra-content">
<div class="content-container">
<div class="characters-section">
<div class="characters-header">
<h2>Cast & Characters</h2>
<button id="expand-characters-btn" class="expand-btn" data-expanded="false">
<span>Show All</span>
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 15l-6 6-6-6"/></svg>
</button>
</div>
<div id="characters-list" class="characters-carousel">
</div>
</div>
</div>
</section>
</div> </div>
<script src="../src/scripts/anime/player.js"></script> <script src="../src/scripts/anime/player.js"></script>