[READ ONLY MIRROR] Spark Social AppView Server github.com/sprksocial/server
atproto deno hono lexicon
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

use regex on search

+14 -2
+14 -2
services/appview/src/routes/actor/searchActor.ts
··· 4 4 import type * as SoSprkActorDefs from '../../lexicon/types/so/sprk/actor/defs.js' 5 5 import type * as SoSprkActorSearch from '../../lexicon/types/so/sprk/actor/searchActors.js' 6 6 7 + // Helper to escape user input for safe RegExp usage 8 + function escapeRegExp(str: string): string { 9 + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') 10 + } 11 + 7 12 export const createSearchActorRouter = (ctx: AppContext) => { 8 13 const router = new Hono() 9 14 ··· 28 33 const sort: any = {} 29 34 30 35 if (q) { 31 - filter.$text = { $search: q } 32 - sort.score = { $meta: 'textScore' } 36 + const escaped = escapeRegExp(q) 37 + const regex = new RegExp(escaped, 'i') 38 + filter.$or = [ 39 + { displayName: regex }, 40 + { description: regex }, 41 + { handle: regex }, 42 + ] 43 + // fall back to sorting by createdAt 44 + sort.createdAt = -1 33 45 } else { 34 46 sort.createdAt = -1 35 47 }