diff --git a/src/db/migrations/001_add_relays.ts b/src/db/migrations/001_add_relays.ts index a603c2ed..41f73a96 100644 --- a/src/db/migrations/001_add_relays.ts +++ b/src/db/migrations/001_add_relays.ts @@ -4,6 +4,7 @@ export async function up(db: Kysely): Promise { await db.schema .createTable('relays') .addColumn('url', 'text', (col) => col.primaryKey()) + .addColumn('domain', 'text', (col) => col.notNull()) .execute(); } diff --git a/src/db/relays.ts b/src/db/relays.ts index 5b91c682..65b009d7 100644 --- a/src/db/relays.ts +++ b/src/db/relays.ts @@ -1,9 +1,14 @@ +import { tldts } from '@/deps.ts'; import { db } from '@/db.ts'; /** Inserts relays into the database, skipping duplicates. */ function addRelays(relays: `wss://${string}`[]) { if (!relays.length) return Promise.resolve(); - const values = relays.map((url) => ({ url })); + + const values = relays.map((url) => ({ + url, + domain: tldts.getDomain(url), + })); return db.insertInto('relays') .values(values) diff --git a/src/deps.ts b/src/deps.ts index d4431c7a..2c7d67d5 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -60,3 +60,4 @@ export { sql, } from 'npm:kysely@^0.25.0'; export { DenoSqliteDialect } from 'https://gitlab.com/soapbox-pub/kysely-deno-sqlite/-/raw/v1.0.0/mod.ts'; +export { default as tldts } from 'npm:tldts@^6.0.14';