diff --git a/crates/chat/src/lib.rs b/crates/chat/src/lib.rs index 887f53a..a33dcf0 100644 --- a/crates/chat/src/lib.rs +++ b/crates/chat/src/lib.rs @@ -253,6 +253,13 @@ impl ChatRegistry { event_map.insert(rumor.id.unwrap(), (event.id, dekey)); } + if rumor.kind != Kind::PrivateDirectMessage + || rumor.kind != Kind::Custom(15) + { + log::info!("Rumor is not releated to NIP17"); + continue; + } + // Check if the rumor has a recipient if rumor.tags.is_empty() { let signal = diff --git a/crates/chat/src/room.rs b/crates/chat/src/room.rs index ee1d79f..c77a1fb 100644 --- a/crates/chat/src/room.rs +++ b/crates/chat/src/room.rs @@ -400,6 +400,10 @@ impl Room { .await? .into_iter() .filter_map(|event| UnsignedEvent::from_json(&event.content).ok()) + .filter(|event| { + // Only process private direct messages and file messages + event.kind == Kind::PrivateDirectMessage || event.kind == Kind::Custom(15) + }) .sorted_by_key(|message| message.created_at) .collect(); @@ -598,7 +602,8 @@ async fn send_gift_wrap( where T: NostrSigner + 'static, { - let mut extra_tags = vec![]; + let k_tag = Tag::custom(TagKind::k(), vec!["14"]); + let mut extra_tags = vec![k_tag]; // Determine the receiver public key based on the config let receiver = match config {