refactor: remove handleAuthorSearch() function and put its logic inside parseMetadata() function

This commit is contained in:
P. Reis 2024-09-13 15:08:36 -03:00
parent 935cc7c5a5
commit be76197e3a

View file

@ -58,7 +58,6 @@ async function handleEvent(event: DittoEvent, signal: AbortSignal): Promise<void
await Promise.all([ await Promise.all([
storeEvent(purifyEvent(event), signal), storeEvent(purifyEvent(event), signal),
handleZaps(kysely, event), handleZaps(kysely, event),
handleAuthorSearch(kysely, event),
parseMetadata(event, signal), parseMetadata(event, signal),
generateSetEvents(event), generateSetEvents(event),
streamOut(event), streamOut(event),
@ -134,8 +133,28 @@ async function parseMetadata(event: NostrEvent, signal: AbortSignal): Promise<vo
const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(event.content); const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(event.content);
if (!metadata.success) return; if (!metadata.success) return;
const kysely = await Storages.kysely();
// Get nip05. // Get nip05.
const { nip05 } = metadata.data; const { name, nip05 } = metadata.data;
// Populate author_search.
try {
const search = [name, nip05].filter(Boolean).join(' ').trim();
await kysely.insertInto('author_search').values({
pubkey: event.pubkey,
search,
}).onConflict(
(oc) =>
oc.column('pubkey')
.doUpdateSet({ search }),
)
.execute();
} catch {
// do nothing
}
if (!nip05) return; if (!nip05) return;
// Fetch nip05. // Fetch nip05.
@ -148,7 +167,6 @@ async function parseMetadata(event: NostrEvent, signal: AbortSignal): Promise<vo
// Track pubkey domain. // Track pubkey domain.
try { try {
const kysely = await Storages.kysely();
const { domain } = parseNip05(nip05); const { domain } = parseNip05(nip05);
await sql` await sql`
@ -248,24 +266,4 @@ async function handleZaps(kysely: Kysely<DittoTables>, event: NostrEvent) {
} }
} }
async function handleAuthorSearch(kysely: Kysely<DittoTables>, event: NostrEvent) {
if (event.kind !== 0) return;
const { name, nip05 } = n.json().pipe(n.metadata()).catch({}).parse(event.content);
const search = [name, nip05].filter(Boolean).join(' ').trim();
try {
await kysely.insertInto('author_search').values({
pubkey: event.pubkey,
search,
}).onConflict(
(oc) =>
oc.column('pubkey')
.doUpdateSet({ search }),
)
.execute();
} catch {
// do nothing
}
}
export { handleEvent, handleZaps }; export { handleEvent, handleZaps };