From b902abc7ccc4ad031924f5232abbac8a2b0f9f7e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 7 Feb 2025 18:13:39 -0600 Subject: [PATCH] Use an even simpler query for db:populate:nip05 script --- scripts/db-populate-nip05.ts | 50 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/scripts/db-populate-nip05.ts b/scripts/db-populate-nip05.ts index 6e4dfa48..c22c0c12 100644 --- a/scripts/db-populate-nip05.ts +++ b/scripts/db-populate-nip05.ts @@ -4,35 +4,37 @@ import { Storages } from '@/storages.ts'; import { faviconCache } from '@/utils/favicon.ts'; import { nip05Cache } from '@/utils/nip05.ts'; -const store = await Storages.db(); +const kysely = await Storages.kysely(); -for await (const msg of store.req([{ kinds: [0] }])) { - if (msg[0] === 'EVENT') { - const signal = AbortSignal.timeout(30_000); // generous timeout - const event = msg[2]; +const query = kysely + .selectFrom('nostr_events') + .select('content') + .where('kind', '=', 0); - // Parse metadata. - const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(event.content); - if (!metadata.success) continue; +for await (const { content } of query.stream(100)) { + const signal = AbortSignal.timeout(30_000); // generous timeout - // Update nip05. - const { nip05 } = metadata.data; - if (nip05) { - try { - await nip05Cache.fetch(nip05, { signal }); - } catch { - // Ignore. - } + // Parse metadata. + const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(content); + if (!metadata.success) continue; + + // Update nip05. + const { nip05 } = metadata.data; + if (nip05) { + try { + await nip05Cache.fetch(nip05, { signal }); + } catch { + // Ignore. } + } - // Update favicon. - const domain = nip05?.split('@')[1].toLowerCase(); - if (domain) { - try { - await faviconCache.fetch(domain, { signal }); - } catch { - // Ignore. - } + // Update favicon. + const domain = nip05?.split('@')[1].toLowerCase(); + if (domain) { + try { + await faviconCache.fetch(domain, { signal }); + } catch { + // Ignore. } } }