diff options
| author | Adrien Hopkins <[email protected]> | 2025-11-01 11:01:06 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2025-11-01 11:01:06 -0500 |
| commit | e31a8948e31a44949647f863196b1f68c58161ad (patch) | |
| tree | 4c67f3fea821f8082a0c3a696a9778d5bb24ae61 | |
| parent | 29c629150aac2aaf089554c75e92f68520d4e1b3 (diff) | |
| download | coinos-ui-e31a8948e31a44949647f863196b1f68c58161ad.tar.gz coinos-ui-e31a8948e31a44949647f863196b1f68c58161ad.zip | |
Load user's DM relays into entry
| -rw-r--r-- | src/routes/(app)/settings/nostr/+page.svelte | 26 |
1 files changed, 26 insertions, 0 deletions
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"); + }); </script> <input type="hidden" name="challenge" value={challenge} /> |
