From df14ff66bc4642d34f3757766c0c286c53c21650 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 30 Aug 2023 12:16:04 -0500 Subject: [PATCH] search: search use FTS to search for statuses --- src/controllers/api/search.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/controllers/api/search.ts b/src/controllers/api/search.ts index 45193f3..c7123bc 100644 --- a/src/controllers/api/search.ts +++ b/src/controllers/api/search.ts @@ -1,6 +1,7 @@ import { AppController } from '@/app.ts'; +import * as eventsDB from '@/db/events.ts'; import { lookupAccount } from '@/utils.ts'; -import { toAccount } from '@/transformers/nostr-to-mastoapi.ts'; +import { toAccount, toStatus } from '@/transformers/nostr-to-mastoapi.ts'; const searchController: AppController = async (c) => { const q = c.req.query('q'); @@ -13,9 +14,12 @@ const searchController: AppController = async (c) => { // TODO: Support searching statuses and hashtags. const event = await lookupAccount(decodeURIComponent(q)); + const events = await eventsDB.getFilters([{ kinds: [1], search: q }]); + const statuses = await Promise.all(events.map((event) => toStatus(event, c.get('pubkey')))); + return c.json({ accounts: event ? [await toAccount(event)] : [], - statuses: [], + statuses: statuses.filter(Boolean), hashtags: [], }); };