feat: return diVine videos only

This commit is contained in:
Patrick PReis 2025-12-04 22:08:49 -03:00
parent 8182fb43c1
commit c7a19e1c2d

View file

@ -18,6 +18,7 @@ const searchQuerySchema = z.object({
following: z.boolean().default(false), following: z.boolean().default(false),
account_id: n.id().optional(), account_id: n.id().optional(),
offset: z.coerce.number().nonnegative().catch(0), offset: z.coerce.number().nonnegative().catch(0),
short_videos_only: z.coerce.boolean().default(false),
}); });
type SearchQuery = z.infer<typeof searchQuerySchema> & { since?: number; until?: number; limit: number }; type SearchQuery = z.infer<typeof searchQuerySchema> & { since?: number; until?: number; limit: number };
@ -66,7 +67,14 @@ const searchController: AppController = async (c) => {
), ),
Promise.all( Promise.all(
events 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 })) .map((event) => renderStatus(relay, event, { viewerPubkey }))
.filter(Boolean), .filter(Boolean),
), ),
@ -141,9 +149,9 @@ function typeToKinds(type: SearchQuery['type']): number[] {
case 'accounts': case 'accounts':
return [0]; return [0];
case 'statuses': case 'statuses':
return [1]; return [1, 21, 22, 34235, 34236];
default: default:
return [0, 1]; return [0, 1, 21, 22, 34235, 34236];
} }
} }