mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
refactor: remove handleAuthorSearch() function and put its logic inside parseMetadata() function
This commit is contained in:
parent
935cc7c5a5
commit
be76197e3a
1 changed files with 21 additions and 23 deletions
|
|
@ -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 };
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue