From 2936012308a8a4b57b1d7047489e0d6e71ee6528 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Fri, 22 Mar 2024 10:23:41 +0100 Subject: [PATCH] filters: fix hashtag filters We might need to move to something a bit more generic that works for all generic tag filters. --- enostr/src/filter.rs | 4 ++++ src/filter.rs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/enostr/src/filter.rs b/enostr/src/filter.rs index ecc33e4..2dea738 100644 --- a/enostr/src/filter.rs +++ b/enostr/src/filter.rs @@ -15,6 +15,9 @@ pub struct Filter { #[serde(rename = "#p")] #[serde(skip_serializing_if = "Option::is_none")] pub pubkeys: Option>, + #[serde(rename = "#t")] + #[serde(skip_serializing_if = "Option::is_none")] + pub hashtags: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub since: Option, // unix timestamp seconds #[serde(skip_serializing_if = "Option::is_none")] @@ -31,6 +34,7 @@ impl Filter { kinds: None, events: None, pubkeys: None, + hashtags: None, since: None, until: None, limit: None, diff --git a/src/filter.rs b/src/filter.rs index b5de6be..c996d3e 100644 --- a/src/filter.rs +++ b/src/filter.rs @@ -24,6 +24,11 @@ pub fn convert_enostr_filter(filter: &enostr::Filter) -> nostrdb::Filter { nfilter.pubkeys(pubkeys.iter().map(|a| *a.bytes()).collect()); } + // #t + if let Some(ref hashtags) = filter.hashtags { + nfilter.tags(hashtags.clone(), 't'); + } + if let Some(since) = filter.since { nfilter.since(since); }