From e31a8948e31a44949647f863196b1f68c58161ad Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Sat, 1 Nov 2025 11:01:06 -0500 Subject: Load user's DM relays into entry --- src/routes/(app)/settings/nostr/+page.svelte | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/routes/(app)/settings/nostr/+page.svelte b/src/routes/(app)/settings/nostr/+page.svelte index 204b924b..e84f10f6 100644 --- a/src/routes/(app)/settings/nostr/+page.svelte +++ b/src/routes/(app)/settings/nostr/+page.svelte @@ -18,6 +18,8 @@ let extensionAvailable = $derived(browser && window.nostr); let { locale } = $derived(user); + import { SimplePool } from 'nostr-tools/pool'; + let newNsec = $state(), nsec = $state(), pin = $state(""), @@ -41,6 +43,30 @@ await tick(); $save.click(); }; + + import { PUBLIC_DM_RELAYS } from '$env/static/public'; + const DM_RELAYS_LIST = PUBLIC_DM_RELAYS.split(','); + const pool = new SimplePool(); + const getPreferredRelays = async (pubkey: string): string[] => { + const events = await pool.querySync( + DM_RELAYS_LIST, { kinds: [10050], limit: 1, authors: [pubkey] } + ); + + let relays = []; + for (const event of events) { + for (const tag of event.tags) { + if (tag.length >= 2 && tag[0] == "relay") { + relays.push(tag[1]); + } + } + } + + return relays; + } + getPreferredRelays(user.pubkey).then(relays => { + const relayEntry = document.getElementById('dmRelays'); + relayEntry.value = relays.join("\n"); + }); -- cgit v1.2.3