This commit is contained in:
2026-01-07 17:22:59 +07:00
parent 967355cd4a
commit bf586580ab
14 changed files with 214 additions and 81 deletions

View File

@@ -8,6 +8,26 @@ pub struct Announcement {
client_name: Option<String>,
}
impl From<&Event> for Announcement {
fn from(val: &Event) -> Self {
let public_key = val
.tags
.iter()
.find(|tag| tag.kind().as_str() == "n" || tag.kind().as_str() == "P")
.and_then(|tag| tag.content())
.and_then(|c| PublicKey::parse(c).ok())
.unwrap_or(val.pubkey);
let client_name = val
.tags
.find(TagKind::Client)
.and_then(|tag| tag.content())
.map(|c| c.to_string());
Self::new(val.id, client_name, public_key)
}
}
impl Announcement {
pub fn new(id: EventId, client_name: Option<String>, public_key: PublicKey) -> Self {
Self {

View File

@@ -528,8 +528,18 @@ impl NostrRegistry {
.limit(1)
.author(public_key);
// Filter for encryption keys announcement
let encryption_keys = Filter::new()
.kind(Kind::Custom(10044))
.limit(1)
.author(public_key);
client
.subscribe_to(urls, vec![metadata, contact_list], Some(opts))
.subscribe_to(
urls,
vec![metadata, contact_list, encryption_keys],
Some(opts),
)
.await?;
Ok(())