diff options
Diffstat (limited to 'server/src/routes/ui/sort.rs')
-rw-r--r-- | server/src/routes/ui/sort.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/server/src/routes/ui/sort.rs b/server/src/routes/ui/sort.rs index af874f8..36250a9 100644 --- a/server/src/routes/ui/sort.rs +++ b/server/src/routes/ui/sort.rs @@ -54,6 +54,7 @@ form_enum!( RatingYoutubeLikes = "rating_yt_likes", RatingYoutubeFollowers = "rating_yt_followers", RatingUser = "rating_user", + RatingLikesDivViews = "rating_loved", } ); @@ -77,6 +78,7 @@ impl SortProperty { (RatingYoutubeLikes, "Youtube Likes"), (RatingYoutubeViews, "Youtube Views"), (RatingUser, "Your Rating"), + (RatingLikesDivViews, "Likes per view"), ], ), ] @@ -197,6 +199,12 @@ pub fn filter_and_sort_nodes( SortProperty::RatingYoutubeFollowers => nodes.sort_by_cached_key(|(n, _)| { SortAnyway(*n.ratings.get(&Rating::YoutubeFollowers).unwrap_or(&0.)) }), + SortProperty::RatingLikesDivViews => nodes.sort_by_cached_key(|(n, _)| { + SortAnyway( + *n.ratings.get(&Rating::YoutubeLikes).unwrap_or(&0.) + / (1. + *n.ratings.get(&Rating::YoutubeViews).unwrap_or(&0.)), + ) + }), SortProperty::RatingUser => nodes.sort_by_cached_key(|(_, u)| u.rating), } |