lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit 1250d06a8267974ee9ec98a3728aacce6f3f0c94
parent 1f7704a69b4421c1fa543e5f77b6c94bfdd2dec6
Author: triesap <tyson@radroots.org>
Date:   Wed,  7 Jan 2026 17:36:25 +0000

nostr: add relay tags to nip89 builder


- extend handler spec with relays and nostrconnect_url
- emit relay tags for configured relay list
- emit nostrconnect_url tag when set
- preserve metadata content and extra tags

Diffstat:
Mnostr/src/events/application_handler.rs | 17+++++++++++++++++
1 file changed, 17 insertions(+), 0 deletions(-)

diff --git a/nostr/src/events/application_handler.rs b/nostr/src/events/application_handler.rs @@ -15,6 +15,8 @@ pub struct RadrootsNostrApplicationHandlerSpec { pub identifier: Option<String>, pub metadata: Option<RadrootsNostrMetadata>, pub extra_tags: Vec<Vec<String>>, + pub relays: Vec<String>, + pub nostrconnect_url: Option<String>, } impl RadrootsNostrApplicationHandlerSpec { @@ -24,6 +26,8 @@ impl RadrootsNostrApplicationHandlerSpec { identifier: None, metadata: None, extra_tags: Vec::new(), + relays: Vec::new(), + nostrconnect_url: None, } } } @@ -54,6 +58,19 @@ pub fn radroots_nostr_build_application_handler_event( for kind in &spec.kinds { tags.push(vec!["k".to_string(), kind.to_string()]); } + for relay in &spec.relays { + let relay = relay.trim(); + if relay.is_empty() { + continue; + } + tags.push(vec!["relay".to_string(), relay.to_string()]); + } + if let Some(url) = spec.nostrconnect_url.as_ref() { + let url = url.trim(); + if !url.is_empty() { + tags.push(vec!["nostrconnect_url".to_string(), url.to_string()]); + } + } for tag in &spec.extra_tags { if tag.is_empty() { continue;