diff --git a/src/lib/components/ShowDetail.svelte b/src/lib/components/ShowDetail.svelte index 26ddbba85c8940dbdd63136f02106d677e996017..0d23ca44d96cc17f4e7527f132b4199e550ea596 100644 --- a/src/lib/components/ShowDetail.svelte +++ b/src/lib/components/ShowDetail.svelte @@ -51,7 +51,9 @@ function eventShowMore() { let fromDate = radioEpoch; fromDate = formatApiDate(fromDate); - let toDate = formatApiDate(new Date()); + let today = new Date(); + today.setUTCHours(23, 59, 59, 999); + let toDate = formatApiDate(today); let baseUrl = `${settings.api.url}/${endpointShow}/${tmp_show.id}/${endpointEpisode}`; let episodeUrl = `${baseUrl}?&withNote&start=${fromDate}&end=${toDate}`; fetchApi(episodeUrl, processMoreEpisodes); @@ -131,7 +133,7 @@ // Mark the current, next episode episode['isCurrent'] = true; gotCurrent = true; - past.push(episode); + next.push(episode); // Future episode } else { next.push(episode); @@ -148,16 +150,13 @@ episodes = past; console.log('Base episodes of show API response:', data); - // Limit and order all future episodes - episodesNext = next.slice(0, maxFutureEpisodes).reverse(); - console.log('Next (n) episodes of show API response:', episodesNext); - // Return all future episodes which have some title & description - const episodesCompleteNext = next.filter( - (e) => e.note.title && (e.note.summary || e.note.content) + episodesNext = next.filter( + (e) => e.note.title && (e.note.summary?.trim() || e.note.content?.trim()) ); - episodes = episodesCompleteNext.concat(episodes); - console.log('Next complete episodes of show API response:', episodesCompleteNext); + episodesNext = episodesNext.reverse(); + episodes = episodesNext.concat(past); + console.log('Next complete episodes of show API response:', episodesNext); show = tmp_show; @@ -179,11 +178,10 @@ // @see https://gitlab.servus.at/aura/steering/-/issues/97 if (data != null && Array.isArray(data)) data = data.reverse(); - if (episodes && Array.isArray(episodes)) { - if (episodes.length > 0) data.unshift(episodes[0]); - } + // Combine existing future episodes with all past ones if (episodesNext) episodes = episodesNext.concat(data); else episodes = data; + labelEpisodes = labelAllEpisodes; hasMoreEpisodes = false; console.log('More episodes of show API response:', data);