aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2025-11-01 11:01:06 -0500
committerAdrien Hopkins <[email protected]>2025-11-01 11:01:06 -0500
commite31a8948e31a44949647f863196b1f68c58161ad (patch)
tree4c67f3fea821f8082a0c3a696a9778d5bb24ae61
parent29c629150aac2aaf089554c75e92f68520d4e1b3 (diff)
downloadcoinos-ui-e31a8948e31a44949647f863196b1f68c58161ad.tar.gz
coinos-ui-e31a8948e31a44949647f863196b1f68c58161ad.zip
Load user's DM relays into entry
-rw-r--r--src/routes/(app)/settings/nostr/+page.svelte26
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} />