diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-04 19:27:31 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-04 19:27:31 +0100 |
commit | 38b3a789880633aaaa1067f989b7b915b4529195 (patch) | |
tree | 6a81ef8404fbc666306bc21d242a570f5daeba93 /server/src | |
parent | e74d53391acc55772e45cc38791b1f8414b11b9d (diff) | |
download | jellything-38b3a789880633aaaa1067f989b7b915b4529195.tar jellything-38b3a789880633aaaa1067f989b7b915b4529195.tar.bz2 jellything-38b3a789880633aaaa1067f989b7b915b4529195.tar.zst |
likes per view sort
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/routes/ui/admin/mod.rs | 1 | ||||
-rw-r--r-- | server/src/routes/ui/sort.rs | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/server/src/routes/ui/admin/mod.rs b/server/src/routes/ui/admin/mod.rs index edbdb03..10c7365 100644 --- a/server/src/routes/ui/admin/mod.rs +++ b/server/src/routes/ui/admin/mod.rs @@ -151,7 +151,6 @@ pub async fn r_admin_import( ) -> MyResult<DynLayoutPage<'static>> { drop(session); let t = Instant::now(); - database.clear_nodes()?; if !incremental { database.clear_nodes()?; } 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), } |