From 6943ca491cb37ab46b90c812ea7e046e898cc8f9 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 3 Apr 2024 03:15:00 +1300 Subject: [PATCH 1/9] Fix popular page being disabled --- materialious/src/routes/+page.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/materialious/src/routes/+page.ts b/materialious/src/routes/+page.ts index b3b31184..bfe7d461 100644 --- a/materialious/src/routes/+page.ts +++ b/materialious/src/routes/+page.ts @@ -1,7 +1,19 @@ -import { getPopular } from '$lib/Api/index.js'; +import { getPopular, getTrending } from '$lib/Api/index.js'; +import { error } from '@sveltejs/kit'; -export async function load({ params }) { +export async function load() { + let popular; + + try { + popular = await getPopular(); + } catch (errorMessage: any) { + if (errorMessage.toString() === 'Error: Administrator has disabled this endpoint.') { + popular = await getTrending(); + } else { + error(500, errorMessage); + } + } return { - popular: await getPopular() + popular: popular }; } \ No newline at end of file From 0c558870a85266d402f7a77744ef5c744b0012ba Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 3 Apr 2024 03:18:11 +1300 Subject: [PATCH 2/9] Added message if popular route disabled --- materialious/src/routes/+page.svelte | 10 +++++++++- materialious/src/routes/+page.ts | 10 ++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/materialious/src/routes/+page.svelte b/materialious/src/routes/+page.svelte index 999922cf..7869de7e 100644 --- a/materialious/src/routes/+page.svelte +++ b/materialious/src/routes/+page.svelte @@ -7,4 +7,12 @@ activePage.set('home'); - +{#if data.popularDisabled} +
+ + +{:else} + +{/if} diff --git a/materialious/src/routes/+page.ts b/materialious/src/routes/+page.ts index bfe7d461..faea9e87 100644 --- a/materialious/src/routes/+page.ts +++ b/materialious/src/routes/+page.ts @@ -1,19 +1,21 @@ -import { getPopular, getTrending } from '$lib/Api/index.js'; +import { getPopular } from '$lib/Api/index.js'; import { error } from '@sveltejs/kit'; export async function load() { - let popular; + let popular = undefined; + let popularDisabled: boolean = false; try { popular = await getPopular(); } catch (errorMessage: any) { if (errorMessage.toString() === 'Error: Administrator has disabled this endpoint.') { - popular = await getTrending(); + popularDisabled = true; } else { error(500, errorMessage); } } return { - popular: popular + popular: popular, + popularDisabled: popularDisabled }; } \ No newline at end of file From 1475d3729c40262e9c055854044e92505f2eae26 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 3 Apr 2024 03:22:20 +1300 Subject: [PATCH 3/9] Fixed encoding error --- materialious/src/lib/Comment.svelte | 2 +- materialious/src/routes/watch/[slug]/+page.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/materialious/src/lib/Comment.svelte b/materialious/src/lib/Comment.svelte index 72cd0f06..2ebab1d3 100644 --- a/materialious/src/lib/Comment.svelte +++ b/materialious/src/lib/Comment.svelte @@ -37,7 +37,7 @@ {/if}

- {comment.content} + {@html comment.contentHtml}

thumb_up {numberWithCommas(comment.likeCount)}

diff --git a/materialious/src/routes/watch/[slug]/+page.svelte b/materialious/src/routes/watch/[slug]/+page.svelte index a2a7276f..3fe73cd4 100644 --- a/materialious/src/routes/watch/[slug]/+page.svelte +++ b/materialious/src/routes/watch/[slug]/+page.svelte @@ -217,7 +217,7 @@

{numberWithCommas(data.video.viewCount)} views • {data.video.publishedText}

-

{data.content.description}

+ {@html data.video.descriptionHtml} {#if data.content} {#if data.content.timestamps.length > 0}
Chapters
From 23452118deaf831a248504a3e8346813e429add1 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 3 Apr 2024 03:38:24 +1300 Subject: [PATCH 4/9] Don't prefetch thumbnail page on tap --- materialious/package-lock.json | 6 ++++++ materialious/package.json | 1 + materialious/src/lib/Thumbnail.svelte | 7 ++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 39050f8a..31711515 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -12,6 +12,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", + "svelte-infinite-scroll": "^2.0.1", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" }, @@ -7142,6 +7143,11 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-infinite-scroll": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/svelte-infinite-scroll/-/svelte-infinite-scroll-2.0.1.tgz", + "integrity": "sha512-goTHCfOHRDCs8C5MeSuIc6LlAQ8zVQ+M4Y3LyvrDjx5rqSSxSrdCuQwIyWYNcO6j6/mnqRro3QB64ClBzfn+Wg==" + }, "node_modules/svelte-persisted-store": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/svelte-persisted-store/-/svelte-persisted-store-0.9.1.tgz", diff --git a/materialious/package.json b/materialious/package.json index 2b2894c5..915ee5bb 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -39,6 +39,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", + "svelte-infinite-scroll": "^2.0.1", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" } diff --git a/materialious/src/lib/Thumbnail.svelte b/materialious/src/lib/Thumbnail.svelte index 951ab8bb..6fb8e6ae 100644 --- a/materialious/src/lib/Thumbnail.svelte +++ b/materialious/src/lib/Thumbnail.svelte @@ -38,7 +38,12 @@ }); - + {#if loading} {:else if loaded} From 232ed38e00a414dad5c6d0bf64947d41d2d332c2 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Wed, 3 Apr 2024 04:24:14 +1300 Subject: [PATCH 5/9] Fixed mobile infinite scrolling --- materialious/package-lock.json | 10 ++--- materialious/package.json | 2 +- materialious/src/routes/+layout.svelte | 2 +- materialious/src/routes/+page.svelte | 2 +- .../src/routes/channel/[slug]/+page.svelte | 42 ++++++++++--------- materialious/src/routes/history/+page.svelte | 25 +++++------ .../src/routes/playlist/[slug]/+page.svelte | 2 +- .../src/routes/search/[slug]/+page.svelte | 32 +++++++------- .../src/routes/subscriptions/+page.svelte | 28 ++++++------- materialious/src/routes/trending/+page.svelte | 2 +- .../src/routes/watch/[slug]/+page.svelte | 2 +- materialious/static/style.css | 5 +++ 12 files changed, 79 insertions(+), 75 deletions(-) diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 31711515..8e58d9f7 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -12,7 +12,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", - "svelte-infinite-scroll": "^2.0.1", + "svelte-infinite-loading": "^1.3.8", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" }, @@ -7143,10 +7143,10 @@ "svelte": "^3.19.0 || ^4.0.0" } }, - "node_modules/svelte-infinite-scroll": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/svelte-infinite-scroll/-/svelte-infinite-scroll-2.0.1.tgz", - "integrity": "sha512-goTHCfOHRDCs8C5MeSuIc6LlAQ8zVQ+M4Y3LyvrDjx5rqSSxSrdCuQwIyWYNcO6j6/mnqRro3QB64ClBzfn+Wg==" + "node_modules/svelte-infinite-loading": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/svelte-infinite-loading/-/svelte-infinite-loading-1.3.8.tgz", + "integrity": "sha512-hn4o848LKd2Q+M11hiMWnfFxM1GHKVDi92HPZ1FYvfed4bEeRZL+QvFAQzhy1SACq6Si0CAJcQFUZpIYmAEnpQ==" }, "node_modules/svelte-persisted-store": { "version": "0.9.1", diff --git a/materialious/package.json b/materialious/package.json index 915ee5bb..bc11d80b 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -39,7 +39,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", - "svelte-infinite-scroll": "^2.0.1", + "svelte-infinite-loading": "^1.3.8", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" } diff --git a/materialious/src/routes/+layout.svelte b/materialious/src/routes/+layout.svelte index a066b9f7..6c17fe38 100644 --- a/materialious/src/routes/+layout.svelte +++ b/materialious/src/routes/+layout.svelte @@ -535,7 +535,7 @@ {/each} -
+
diff --git a/materialious/src/routes/+page.svelte b/materialious/src/routes/+page.svelte index 7869de7e..3946b935 100644 --- a/materialious/src/routes/+page.svelte +++ b/materialious/src/routes/+page.svelte @@ -1,6 +1,6 @@ @@ -66,3 +65,5 @@
+ + diff --git a/materialious/src/routes/playlist/[slug]/+page.svelte b/materialious/src/routes/playlist/[slug]/+page.svelte index caec99a7..3c76517f 100644 --- a/materialious/src/routes/playlist/[slug]/+page.svelte +++ b/materialious/src/routes/playlist/[slug]/+page.svelte @@ -4,7 +4,7 @@ import VideoList from '$lib/VideoList.svelte'; import { cleanNumber } from '$lib/misc.js'; import { onMount } from 'svelte'; - import { activePage } from '../../../store.js'; + import { activePage } from '../../../store'; export let data; diff --git a/materialious/src/routes/search/[slug]/+page.svelte b/materialious/src/routes/search/[slug]/+page.svelte index 425a7d7d..ed4ed92f 100644 --- a/materialious/src/routes/search/[slug]/+page.svelte +++ b/materialious/src/routes/search/[slug]/+page.svelte @@ -4,7 +4,7 @@ import ChannelThumbnail from '$lib/ChannelThumbnail.svelte'; import PlaylistThumbnail from '$lib/PlaylistThumbnail.svelte'; import Thumbnail from '$lib/Thumbnail.svelte'; - import { onDestroy, onMount } from 'svelte'; + import InfiniteLoading, { type InfiniteEvent } from 'svelte-infinite-loading'; import { activePage } from '../../../store'; export let data; @@ -20,24 +20,20 @@ document.location.href = $page.url.href; } - async function handleScroll() { - const { scrollTop, clientHeight, scrollHeight } = document.documentElement; - if (scrollTop + clientHeight >= scrollHeight - 5) { - currentPage += 1; - search = [ - ...search, - ...(await getSearch(data.slug, { page: currentPage.toString(), type: data.searchType })) - ]; + async function loadMore(event: InfiniteEvent) { + currentPage++; + const newSearch = await getSearch(data.slug, { + page: currentPage.toString(), + type: data.searchType + }); + + if (newSearch.length === 0) { + event.detail.complete(); + } else { + search = [...search, ...newSearch]; + event.detail.loaded(); } } - - onMount(() => { - window.addEventListener('scroll', handleScroll); - }); - - onDestroy(() => { - window.removeEventListener('scroll', handleScroll); - });
@@ -91,3 +87,5 @@ {/each}
+ + diff --git a/materialious/src/routes/subscriptions/+page.svelte b/materialious/src/routes/subscriptions/+page.svelte index d93855a2..81020910 100644 --- a/materialious/src/routes/subscriptions/+page.svelte +++ b/materialious/src/routes/subscriptions/+page.svelte @@ -1,32 +1,28 @@ + + diff --git a/materialious/src/routes/trending/+page.svelte b/materialious/src/routes/trending/+page.svelte index 6bc28178..ca6f269b 100644 --- a/materialious/src/routes/trending/+page.svelte +++ b/materialious/src/routes/trending/+page.svelte @@ -1,6 +1,6 @@