vitorpamplona / amethyst

Nostr client for Android
MIT License
1.13k stars 155 forks source link

[FEATURE] Top Feed View for Home Screen #337

Open braydonf opened 1 year ago

braydonf commented 1 year ago

Use Case To discover new top notes from your follows and catch up on notes quickly.

Proposal Add an new view for the Home Screen along side New Threads and Conversations called Top. The view would show notes that have been zapped, liked and commented by your follows within a threshold window of time (e.g. 24 hours or 96 hours). It would be sorted based upon a weight where the larger weight is displayed at the top.

The weight for each note is determined with this logic:

  1. The base weight of a note is the created time.
  2. A zap, like or comment from your follows adds weight to the referenced note.
  3. A zap has more weight than a comment and a comment more weight than a like (e.g. zap > comment > like).
  4. A zap, like or comment that is closer to the created time has more weight than one that is later. This is on a curve to ease-in and ease out.
  5. After a threshold window of time: zaps, likes and comments no longer add weight. Therefore, any new note after the threshold window of time will have more weight.

As new notes, zaps, likes and comments come in the view would update to reflect the new information. Notes that have a lot of activity would rise and older notes will eventually fall away after the threshold window of time.

Here is a draft implementation gist to show how weight is calculated in detail: https://gist.github.com/braydonf/7a86c9b316e6939ae7d8dcb8b1dd601c

braydonf commented 1 year ago

More thoughts:

A sketch of the navigation:

amethyst-sketch

vitorpamplona commented 1 year ago

Also, lots of people are very against Amethyst having "algorithms". So... gotta figure out a way to do it while giving people options to select which algorithm to follow.