From 0e687d185f6c01a353ce7399f9269c7c27041bcb Mon Sep 17 00:00:00 2001 From: WardPearce Date: Thu, 5 Mar 2026 01:23:43 +1300 Subject: [PATCH] Fixed filter schemas --- .../lib/components/settings/Filters.svelte | 7 +++- materialious/src/lib/filtering/index.ts | 6 ++-- materialious/src/lib/filtering/schemas.ts | 32 +++++++++---------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/materialious/src/lib/components/settings/Filters.svelte b/materialious/src/lib/components/settings/Filters.svelte index e683e0f3..9948e800 100644 --- a/materialious/src/lib/components/settings/Filters.svelte +++ b/materialious/src/lib/components/settings/Filters.svelte @@ -45,7 +45,7 @@ {#if $filterContentListStore} {#each $filterContentListStore as filter, index (index)} -
+
{filter.type}
    {#each filter.conditions as condition, index (index)} @@ -67,3 +67,8 @@
    {/each} {/if} + + diff --git a/materialious/src/lib/filtering/index.ts b/materialious/src/lib/filtering/index.ts index 8a38aba9..7836cb50 100644 --- a/materialious/src/lib/filtering/index.ts +++ b/materialious/src/lib/filtering/index.ts @@ -52,7 +52,7 @@ export function isItemFiltered(item: FeedItem): boolean { const filteredContent = get(filterContentListStore); if (!filteredContent) return false; - return filteredContent.every((filterGroup) => { + return filteredContent.some((filterGroup) => { if (filterGroup.type !== item.type) { if (filterGroup.type !== 'video' || (item.type !== 'shortVideo' && item.type !== 'stream')) { return false; @@ -75,7 +75,7 @@ export function isItemFiltered(item: FeedItem): boolean { return ( typeof fieldValue === 'string' && typeof condition.value === 'string' && - fieldValue.includes(condition.value) + fieldValue.toLowerCase().includes(condition.value.toLowerCase()) ); case 'gt': @@ -129,5 +129,7 @@ export async function loadContentFilterFromURL(url: string) { if (!parsedFilterList.success) throw new Error(parsedFilterList.error.message); + console.log(parsedFilterList.data.filterBy); + filterContentListStore.set(parsedFilterList.data.filterBy); } diff --git a/materialious/src/lib/filtering/schemas.ts b/materialious/src/lib/filtering/schemas.ts index e5768412..25c4ede6 100644 --- a/materialious/src/lib/filtering/schemas.ts +++ b/materialious/src/lib/filtering/schemas.ts @@ -1,28 +1,26 @@ // Not possible to exact from typescript interfaces at runtime. export const VideoSchema: Record = { - videoId: 'string', - title: 'string', - description: 'string', - thumbnailUrl: 'string', - duration: 'number', - publishedAt: 'string', + author: 'string', authorId: 'string', + authorUrl: 'string', + authauthorVerified: 'string', + published: 'number', + publishedText: 'string', + title: 'string', + type: 'string', + videoId: 'string', viewCount: 'number', - viewCountText: 'string', - likeCount: 'number', - dislikeCount: 'number', - commentCount: 'number', - isLive: 'boolean', - type: 'string' + viewCountText: 'string' }; export const ChannelSchema: Record = { + author: 'string', authorId: 'string', - name: 'string', + authorUrl: 'string', + authorVerified: 'boolean', + autoGenerated: 'boolean', + channelHandle: 'string', description: 'string', - avatarUrl: 'string', - bannerUrl: 'string', - subscriberCount: 'number', - verified: 'boolean' + subCount: 'number' };