From 723499977a84bb7bde653ccceeacd1f25714b66d Mon Sep 17 00:00:00 2001 From: WardPearce Date: Thu, 12 Feb 2026 13:43:16 +1300 Subject: [PATCH] Custimise cull amount --- .../src/lib/api/youtubejs/subscriptions.ts | 9 ++++++--- .../src/lib/components/settings/Engine.svelte | 20 +++++++++++++++++++ .../lib/components/settings/Settings.svelte | 17 +++++++++++++--- materialious/src/lib/i18n/locales/en.json | 4 ++++ materialious/src/lib/store.ts | 11 +++++----- .../src/routes/(app)/playlists/+page.svelte | 8 ++++++-- 6 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 materialious/src/lib/components/settings/Engine.svelte diff --git a/materialious/src/lib/api/youtubejs/subscriptions.ts b/materialious/src/lib/api/youtubejs/subscriptions.ts index 995f0640..ffe368de 100644 --- a/materialious/src/lib/api/youtubejs/subscriptions.ts +++ b/materialious/src/lib/api/youtubejs/subscriptions.ts @@ -2,8 +2,10 @@ import { localDb } from '$lib/dexie'; import { logoutStores } from '$lib/misc'; import { cleanNumber } from '$lib/numbers'; import { relativeTimestamp } from '$lib/time'; +import { get } from 'svelte/store'; import type { Feed, Subscription, Thumbnail, Video } from '../model'; import { getChannelYTjs } from './channel'; +import { engineCullYTStore } from '$lib/store'; export async function getSubscriptionsYTjs(): Promise { const subscriptions: Subscription[] = []; @@ -150,9 +152,10 @@ export async function getFeedYTjs(maxResults: number, page: number): Promise b.published - a.published); - // Cull videos if there are more than 1000 - if (videos.length > 1000) { - const videosToDelete = videos.slice(1000); + const cullAfter = get(engineCullYTStore); + + if (videos.length > cullAfter) { + const videosToDelete = videos.slice(cullAfter); const videoIdsToDelete = videosToDelete.map((video) => video.videoId); await localDb.subscriptionFeed.where('id').anyOf(videoIdsToDelete).delete(); diff --git a/materialious/src/lib/components/settings/Engine.svelte b/materialious/src/lib/components/settings/Engine.svelte new file mode 100644 index 00000000..135ae11d --- /dev/null +++ b/materialious/src/lib/components/settings/Engine.svelte @@ -0,0 +1,20 @@ + + +{#if isYTBackend()} +
+ view_stream + { + engineCullYTStore.set(Number((event.target as HTMLInputElement).value)); + }} + value={$engineCullYTStore} + name="cull" + type="number" + /> + +
+{/if} diff --git a/materialious/src/lib/components/settings/Settings.svelte b/materialious/src/lib/components/settings/Settings.svelte index 174f8c3a..01206ad0 100644 --- a/materialious/src/lib/components/settings/Settings.svelte +++ b/materialious/src/lib/components/settings/Settings.svelte @@ -1,5 +1,5 @@