commit 2936012308a8a4b57b1d7047489e0d6e71ee6528
parent 450709afa756001e52c0827ea539332846cf7946
Author: William Casarin <jb55@jb55.com>
Date:   Fri, 22 Mar 2024 10:23:41 +0100
filters: fix hashtag filters
We might need to move to something a bit more generic that works
for all generic tag filters.
Diffstat:
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git 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<Vec<Pubkey>>,
+    #[serde(rename = "#t")]
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub hashtags: Option<Vec<String>>,
     #[serde(skip_serializing_if = "Option::is_none")]
     pub since: Option<u64>, // 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
@@ -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);
     }