mikedilger / gossip

Gossip is a nostr client
Other
718 stars 83 forks source link

Thread spam filtering hides replies to the "spam" #887

Open mikedilger opened 1 month ago

mikedilger commented 1 month ago

If somebody reposts a note that was a reply to something your spam filter filtered out, you cannot see it in thread view.

The thread view will find the parent but won't be able to render down to the note in question because the spam node will be ripped out.

This isn't a big deal if the spam is actually spam, but when people are aggressive in spam filtering often times it is just someone that none of your followed people follow.

For me I couldn't see this in thread view: nostr:nevent1qqsd6n5j5fmf2tyalz6slu3ytyaypg7kf26pxqq2efy5vtjqkww46ygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs8c894c

Because this note was filtered: nostr:nevent1qqszh3c8jh0cqlf5q06myfleqlc6pqq4wte0mgvr4lysx58wfd2dllqppemhxue69uhkummn9ekx7mp0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tc6kz6vq

Also I notice that filtering is happening EVERY FRAME because the UI is calling GLOBALS.db().get_replies() which is calling the filter. That is not very efficient.

Putting the spam into the dismissed list GLOBALS.dismissed.blocking_write().push(event.id) doesn't work because dismissed is not consulted for threads. Even if it were, it would stop the rendering.

I'm really not sure how to fix.