From 18bfee45bde64af86963238bcbfc4c12904050d7 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Mon, 3 Feb 2025 18:55:42 -0300 Subject: [PATCH] feat: populate extensions --- deno.json | 1 + scripts/db-populate-extensions.ts | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 scripts/db-populate-extensions.ts diff --git a/deno.json b/deno.json index f64b0a1f..80c58382 100644 --- a/deno.json +++ b/deno.json @@ -22,6 +22,7 @@ "trends": "deno run -A --env-file --deny-read=.env scripts/trends.ts", "clean:deps": "deno cache --reload src/app.ts", "db:populate-search": "deno run -A --env-file --deny-read=.env scripts/db-populate-search.ts", + "db:populate-extensions": "deno run -A --env-file --deny-read=.env scripts/db-populate-extensions.ts", "vapid": "deno run scripts/vapid.ts" }, "unstable": [ diff --git a/scripts/db-populate-extensions.ts b/scripts/db-populate-extensions.ts new file mode 100644 index 00000000..15800cbf --- /dev/null +++ b/scripts/db-populate-extensions.ts @@ -0,0 +1,26 @@ +import { Storages } from '@/storages.ts'; +import { EventsDB } from '@/storages/EventsDB.ts'; + +const store = await Storages.db(); +const kysely = await Storages.kysely(); + +for await (const msg of store.req([{ kinds: [1] }])) { // Only kind 1 can contain media in Ditto? + if (msg[0] === 'EVENT') { + const event = msg[2]; + + const ext = EventsDB.indexExtensions(event); + + try { + await kysely.updateTable('nostr_events') + .set('search_ext', ext) + .where('id', '=', event.id) + .execute(); + } catch { + // do nothing + } + } else { + break; + } +} + +Deno.exit();