From e5ac91294d415a7c5a650d575244ad3fd57589cf Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Wed, 4 Jan 2023 22:50:41 -0300 Subject: [PATCH] support bare domains (without "user" part) on dns_ids. --- src/overlord/mod.rs | 3 +++ src/ui/mod.rs | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/overlord/mod.rs b/src/overlord/mod.rs index 1cd996b6..8bec52ab 100644 --- a/src/overlord/mod.rs +++ b/src/overlord/mod.rs @@ -602,6 +602,9 @@ impl Overlord { async fn get_and_follow_nip35(nip35: String) -> Result<(), Error> { let mut parts: Vec<&str> = nip35.split('@').collect(); + if parts.len() == 1 { + parts = Vec::from(["_", parts.get(0).unwrap()]) + } if parts.len() != 2 { return Err(Error::InvalidDnsId); } diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 22c53c02..b8490bfd 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -316,13 +316,18 @@ impl GossipUi { ui.label("🚶"); } - if let Some(dns_id) = &person.dns_id { + if let Some(mut dns_id) = person.dns_id.clone() { + if dns_id.starts_with("_@") { + dns_id = dns_id.get(2..).unwrap().to_string(); + } + if person.dns_id_valid > 0 { ui.label(RichText::new(dns_id).monospace().small()); } else { ui.label(RichText::new(dns_id).monospace().small().strikethrough()); } } + ui.label(RichText::new("🔑").text_style(TextStyle::Small).weak()); if ui.add(CopyButton {}).clicked() { ui.output().copied_text = person.pubkey.0.to_owned();