From 2c15dae77c6274654c16d21b8428d8ede6d6564c Mon Sep 17 00:00:00 2001 From: fauzanmhr Date: Mon, 26 Aug 2024 14:31:12 +0700 Subject: [PATCH 1/7] lazy load iframe --- views/episode.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/episode.ejs b/views/episode.ejs index 0a480fe..63a4623 100644 --- a/views/episode.ejs +++ b/views/episode.ejs @@ -4,7 +4,7 @@
- +
From 96ef673eb4976eafd0f66010743351d3f607b6a6 Mon Sep 17 00:00:00 2001 From: fauzanmhr Date: Mon, 26 Aug 2024 17:35:12 +0700 Subject: [PATCH 3/7] Fix: Ensure default source is not decoded unnecessarily and handle URL formats for embedding - Added logic to skip decoding for the default source to prevent errors - Enhanced formatUrlForEmbedding function to handle various URL formats for embedding - Improved error handling in decodeShortlink function with logging - Updated event listener to conditionally decode and format selected URLs --- views/episode.ejs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/views/episode.ejs b/views/episode.ejs index 0a480fe..5ab1077 100644 --- a/views/episode.ejs +++ b/views/episode.ejs @@ -70,6 +70,7 @@ const decodedUrl = await response.text(); return decodedUrl; } catch (error) { + console.error('Error decoding shortlink:', error); return shortlink; // Return the original shortlink if decoding fails } } @@ -96,9 +97,13 @@ document.getElementById('streaming-source').addEventListener('change', async function() { const selectedUrl = this.value; - const decodedUrl = await decodeShortlink(selectedUrl); - const formattedUrl = formatUrlForEmbedding(decodedUrl); - document.getElementById('streaming-iframe').src = formattedUrl; + let decodedUrl = selectedUrl; + + // Only decode if it's not the default source + if (selectedUrl !== "<%= episode.streamingUrl %>") { + decodedUrl = await decodeShortlink(selectedUrl); + } + document.getElementById('streaming-iframe').src = formatUrlForEmbedding(decodedUrl); }); From 95cde2169191e96da464925fd4456e5d81c5e0a1 Mon Sep 17 00:00:00 2001 From: fauzanmhr Date: Mon, 26 Aug 2024 19:42:20 +0700 Subject: [PATCH 4/7] just refactor --- index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 5f4adc6..dcef515 100644 --- a/index.js +++ b/index.js @@ -36,9 +36,6 @@ const fetchAndStoreAnimeData = async () => { await fetchAndStoreAnimeData(); })(); -// Periodically update all anime data (every 60 minutes) -setInterval(fetchAndStoreAnimeData, 60 * 60 * 1000); - // Use routes app.use('/', animeRoutes); app.use('/', genreRoutes); @@ -49,4 +46,7 @@ app.use('/', scheduleRoutes); // Start the server app.listen(port, () => { console.log(`Server is running on http://localhost:${port}`); -}); \ No newline at end of file +}); + +// Periodically update all anime data (every 60 minutes) +setInterval(fetchAndStoreAnimeData, 60 * 60 * 1000);just refactor \ No newline at end of file From 89ff3d2039cb930aca346573c2b3b9f04d3e96ed Mon Sep 17 00:00:00 2001 From: fauzanmhr Date: Mon, 26 Aug 2024 19:52:00 +0700 Subject: [PATCH 5/7] fix index.js and add spinner to episode page --- index.js | 2 +- views/episode.ejs | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index dcef515..7caae83 100644 --- a/index.js +++ b/index.js @@ -49,4 +49,4 @@ app.listen(port, () => { }); // Periodically update all anime data (every 60 minutes) -setInterval(fetchAndStoreAnimeData, 60 * 60 * 1000);just refactor \ No newline at end of file +setInterval(fetchAndStoreAnimeData, 60 * 60 * 1000); \ No newline at end of file diff --git a/views/episode.ejs b/views/episode.ejs index 5ab1077..3b8f665 100644 --- a/views/episode.ejs +++ b/views/episode.ejs @@ -3,8 +3,15 @@

<%= episode.judul %>

-
- +
+ +
+
+ Loading... +
+
+ +