From c7a19e1c2dabc75fc5b09c5fcefd32b586e8bc88 Mon Sep 17 00:00:00 2001 From: Patrick PReis Date: Thu, 4 Dec 2025 22:08:49 -0300 Subject: [PATCH] feat: return diVine videos only --- packages/ditto/controllers/api/search.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/ditto/controllers/api/search.ts b/packages/ditto/controllers/api/search.ts index f4fade5b..fb009642 100644 --- a/packages/ditto/controllers/api/search.ts +++ b/packages/ditto/controllers/api/search.ts @@ -18,6 +18,7 @@ const searchQuerySchema = z.object({ following: z.boolean().default(false), account_id: n.id().optional(), offset: z.coerce.number().nonnegative().catch(0), + short_videos_only: z.coerce.boolean().default(false), }); type SearchQuery = z.infer & { since?: number; until?: number; limit: number }; @@ -66,7 +67,14 @@ const searchController: AppController = async (c) => { ), Promise.all( events - .filter((event) => event.kind === 1) + .filter((event) => { + // If short_videos_only is true, only return kinds 22 and 34236 + if (result.data.short_videos_only) { + return [22, 34236].includes(event.kind); + } + // Otherwise return all status kinds + return [1, 21, 22, 34235, 34236].includes(event.kind); + }) .map((event) => renderStatus(relay, event, { viewerPubkey })) .filter(Boolean), ), @@ -141,9 +149,9 @@ function typeToKinds(type: SearchQuery['type']): number[] { case 'accounts': return [0]; case 'statuses': - return [1]; + return [1, 21, 22, 34235, 34236]; default: - return [0, 1]; + return [0, 1, 21, 22, 34235, 34236]; } }