notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 478603e16ee981b99de19e48aa68b6b8e761a1cc
parent d0265a5dcb71a4a138a4f17cac4a187cfe392ce7
Author: William Casarin <jb55@jb55.com>
Date:   Mon, 27 Jan 2025 12:30:22 -0800

contacts: disable hashtag follows for now

People are spamming hashtags with AI CP. Let's disable this until we
at least have image blurring.

Alternatively we could only show the link for people you don't follow.

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mcrates/notedeck/src/filter.rs | 8++++++--
Mcrates/notedeck_columns/src/timeline/mod.rs | 7+++++--
2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/crates/notedeck/src/filter.rs b/crates/notedeck/src/filter.rs @@ -192,7 +192,11 @@ impl FilteredTags { /// Create a filter from tags. This can be used to create a filter /// from a contact list -pub fn filter_from_tags(note: &Note, add_pubkey: Option<&[u8; 32]>) -> Result<FilteredTags> { +pub fn filter_from_tags( + note: &Note, + add_pubkey: Option<&[u8; 32]>, + with_hashtags: bool, +) -> Result<FilteredTags> { let mut author_filter = Filter::new(); let mut hashtag_filter = Filter::new(); let mut author_res: Option<FilterBuilder> = None; @@ -233,7 +237,7 @@ pub fn filter_from_tags(note: &Note, add_pubkey: Option<&[u8; 32]>) -> Result<Fi author_filter.add_id_element(author)?; author_count += 1; - } else if t == "t" { + } else if t == "t" && with_hashtags { let hashtag = if let Some(hashtag) = tag.get_unchecked(1).variant().str() { hashtag } else { diff --git a/crates/notedeck_columns/src/timeline/mod.rs b/crates/notedeck_columns/src/timeline/mod.rs @@ -204,7 +204,9 @@ impl Timeline { deck_author: Option<&[u8; 32]>, ) -> Result<Self> { let our_pubkey = deck_author.map(|da| pk_src.to_pubkey_bytes(da)); - let filter = filter::filter_from_tags(contact_list, our_pubkey)?.into_follow_filter(); + let with_hashtags = false; + let filter = + filter::filter_from_tags(contact_list, our_pubkey, with_hashtags)?.into_follow_filter(); Ok(Timeline::new( TimelineKind::contact_list(pk_src), @@ -689,6 +691,7 @@ pub fn is_timeline_ready( info!("notes found for contact timeline after GotRemote!"); let note_key = res[0]; + let with_hashtags = false; let filter = { let txn = Transaction::new(ndb).expect("txn"); @@ -698,7 +701,7 @@ pub fn is_timeline_ready( .pubkey_source() .as_ref() .and_then(|pk_src| our_pk.map(|pk| pk_src.to_pubkey_bytes(pk))); - filter::filter_from_tags(&note, add_pk).map(|f| f.into_follow_filter()) + filter::filter_from_tags(&note, add_pk, with_hashtags).map(|f| f.into_follow_filter()) }; // TODO: into_follow_filter is hardcoded to contact lists, let's generalize