This issue should be fixed in the latest release (v1.31.1).
Summit
Community to discuss Summit, a Lemmy reader for Android.
App (Play Store): https://play.google.com/store/apps/details?id=com.idunnololz.summit
APK: https://github.com/idunnololz/summit-for-lemmy/releases
Patreon: https://patreon.com/SummitforLemmy
Ko-Fi: https://ko-fi.com/summitforlemmy
Website: https://summit.idunnololz.com/
Lemmy doesn't deserve you.
Thank you for reporting this issue. Looks like v0.19 of Lemmy broke this. Previously Lemmy returned sort scores which made it possible for clients to order posts based on weights defined by the server. v0.19 seems to no longer return these values so the client defaults to a score of 0 for everything. This bug likely affects sorting by scaled, controversy, active and hot. I'll see if I can calculates these scores client side. If not then unfortunately these sort orders will not be supported for multi-communities going forward.
Edit: Looks like client side calculations for sorting scores is do-able. The downside is, Lemmy's ranking system updates all the time. Managing these ranking scores on the client side means the way the client sorts stuff might not always be aligned with the server however it should be close enough that it shouldn't cause issues in most cases.
This is just notes for me.
Lemmy server's calculate hot rank score (used for Hot sort order) as:
hours_diff = (now - publish_time_ms) / 3600
if (hours_diff > 0 && hours_diff < 168) {
hot_rank = log(max(2, score + 2)) / pow((hours_diff + 2), 1.8)
} else {
hot_rank = 0
}
hot active score (used for Active sort order) as:
newest_comment_time_necro = min(newest_comment_time, two_days_ms)
hours_diff = (now - newest_comment_time_necro) / 3600
if (hours_diff > 0 && hours_diff < 168) {
hot_active_rank = log(max(2, score + 2)) / pow((hours_diff + 2), 1.8)
} else {
hot_active_rank = 0
}
scaled score (used for Scaled sort order) as:
hot_rank / log(2 + MAU)
controversy rank (used for Controversal sort order) as:
if (downvotes == 0 || upvotes == ) {
rank = 0
} else {
rank = (upvotes + downvotes) * min(upvotes, downvotes) / max(upvotes, downvotes)
}
How do I setup a multi-community?
Click on the red square with the three white dots -> Create multicommunity.