diff --git a/scripts/db-populate-nip05.ts b/scripts/db-populate-nip05.ts index b2b05651..aaa97e46 100644 --- a/scripts/db-populate-nip05.ts +++ b/scripts/db-populate-nip05.ts @@ -5,40 +5,35 @@ import { faviconCache } from '@/utils/favicon.ts'; import { nip05Cache } from '@/utils/nip05.ts'; const store = await Storages.db(); -const kysely = await Storages.kysely(); -const statsQuery = kysely.selectFrom('author_stats').select('pubkey'); -for await (const { pubkey } of statsQuery.stream(10)) { - const signal = AbortSignal.timeout(30_000); // generous timeout +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]; - try { - const [author] = await store.query([{ kinds: [0], authors: [pubkey], limit: 1 }]); + try { + // Parse metadata. + const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(event.content); + if (!metadata.success) continue; - if (!author) { + // 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) { + await faviconCache.fetch(domain, { signal }); + } + } catch { continue; } - - // Parse metadata. - const metadata = n.json().pipe(n.metadata()).catch({}).safeParse(author.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) { - await faviconCache.fetch(domain, { signal }); - } - } catch { - continue; } }