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 @@