From ff04f96d8c071c238968355c263e74692d529400 Mon Sep 17 00:00:00 2001
From: David Trattnig <david@subsquare.at>
Date: Mon, 28 Oct 2024 16:57:14 +0100
Subject: [PATCH] fix: episode queries and trim filter params

---
 src/lib/components/ShowDetail.svelte | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/lib/components/ShowDetail.svelte b/src/lib/components/ShowDetail.svelte
index 26ddbba..0d23ca4 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);
-- 
GitLab