IceCubesApp
IceCubesApp copied to clipboard
Digest: Popular posts from timeline
Fixes #132
I'm not sure that this is something you are interested in having in the Ice Cubes app, but maybe nice to consider. The "algorithm" is based on the https://github.com/hodgesmr/mastodon_digest project and uses a fixed configuration (equivalent to SimpleWeighted option and using the home timeline). If this is something you want to explore, then other options could be added in the user settings, or an entirely new set of views for the Digest feature could also be considered.
Mastodon API has a limit on how many toots are visible in the user's home timeline (400 toots). More details here: https://github.com/mastodon/mastodon/issues/2301 Based on that list, the code in this PR creates a digest of "popular posts".
I keep running the mastodon_digest myself from time to time, and I thought it would be nice to have it embedded in a client like Ice Cubes.
As a side note, those are my first semi-complex lines of Swift. I'm happy to refactor and eager to learn how it could be better.
This is amazing. I'll play around a bit but I love the idea! I do want to explore it and I do like the idea that the user can setup the weight himself. Let me look at the code but honestly this is very good I think we could merge it soon!
I definitely get older than 24H status at the moment. Is that normal?
General feedbacks: On my account it return around 10 status and it's hard to understand why they're sometimes. For example a random reply with 1 likes, I feel like I miss a lot of other popular status? I think a reason would be awesome, like a little header to explain (like Twitter) why it's there.
https://user-images.githubusercontent.com/535509/213975196-1aab647f-aacb-48b6-bf27-a91f930237ef.mov
Snapshot from my account. Maybe it makes sense in the end tho!
We can follow some user feedbacks here https://mastodon.cloud/@icecubesapp/109736950398919054
Hey, happy to hear this is of interest. I will try to clarify below some of my own observations.
There are many nuances with the Digest which might bring frustration in the experience. The frustration might be lowered with more clarity about the formula for calculating the digest, plus options to change the formula. An example using the same formula is this app: https://fediview.com/ (source code: https://github.com/adamghill/fediview)
- Accounts that I follow with low follower numbers gets a highlight even if they have 1 star.
- Account information might not be up-to-date, as that info is what my Mastodon instance have stored. Fediverse if very volatile in this aspect, servers are quickly out of date with remote accounts metadata like followers counts.
- The number of toots that appear in the Digest are (currently) posts above the 95th percentile of scores of all loaded posts.
I just noticed that the F.A.Q in this site clarifies some things: https://fediview.com/faq
Maybe the Ice Cubes should have something similar?
I definitely get older than 24H status at the moment. Is that normal?
Yes, because if somebody retoots that or if that toot belongs to the 400 most recent from the home timeline. In the code I don't filter out posts "older than x hours".
Not sure about the next step on this. Do you want to build the settings and explanation screen? I can also look at it a bit later in the week.
@Dimillian I will try to come up with some settings (like https://fediview.com/ ) and explanation for the Digest. I think it would be better to have this in the app before releasing, since people will ask a lot of the same questions.
Yep exactly. Would sit fine in the setting you can do a new Form for the Digest.
And I think at least a slider to choose the percentile would be nice.
@Dimillian I won't have time in the next few days to work on this. So, I just want to let you know if someone else wants to take over. I don't want to sit on this when other people might want to move it to the finish line.
I was thinking about this earlier this week. Having so many posts to scroll through is becoming a chore 😝 A digest sounds like a great addition! I can try chipping away at the UI later this week. I'm new to SwiftUI so you may wind up getting to it before me, if so, no worries.