aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-27 22:19:57 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-27 22:19:57 +0100
commit59ef86b0a637ec3ce44ca495c6d22ddf61649134 (patch)
treec1d92570c2c189d9c78cc00fe6e16323b4af8ee2 /server/src/routes/ui
parent837d3296497bd503fe9aa8598ac46d05cb50f46c (diff)
downloadjellything-59ef86b0a637ec3ce44ca495c6d22ddf61649134.tar
jellything-59ef86b0a637ec3ce44ca495c6d22ddf61649134.tar.bz2
jellything-59ef86b0a637ec3ce44ca495c6d22ddf61649134.tar.zst
sort by duration
Diffstat (limited to 'server/src/routes/ui')
-rw-r--r--server/src/routes/ui/sort.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/server/src/routes/ui/sort.rs b/server/src/routes/ui/sort.rs
index 23918be..2c5f0cc 100644
--- a/server/src/routes/ui/sort.rs
+++ b/server/src/routes/ui/sort.rs
@@ -46,6 +46,7 @@ form_enum!(
enum SortProperty {
ReleaseDate = "release_date",
Title = "title",
+ Duration = "duration",
RatingRottenTomatoes = "rating_rt",
RatingMetacritic = "rating_mc",
RatingImdb = "rating_imdb",
@@ -64,6 +65,7 @@ impl SortProperty {
"General",
&[(Title, "Title"), (ReleaseDate, "Release Date")],
),
+ ("Media", &[(Duration, "Runtime")]),
(
"By Rating",
&[
@@ -156,13 +158,20 @@ pub fn filter_and_sort_nodes(
}
}
}
- if let Some(SortProperty::ReleaseDate) = &f.sort_by {
- o &= node.release_date.is_some()
+ if let Some(sort_by) = &f.sort_by {
+ match sort_by {
+ SortProperty::ReleaseDate => o &= node.release_date.is_some(),
+ SortProperty::Duration => o &= node.media.is_some(),
+ _ => (),
+ }
}
o
});
let sort_prop = f.sort_by.unwrap_or(default_sort.0);
match sort_prop {
+ SortProperty::Duration => {
+ nodes.sort_by_key(|(_, n, _)| (n.media.as_ref().unwrap().duration * 1000.) as i64)
+ }
SortProperty::ReleaseDate => {
nodes.sort_by_key(|(_, n, _)| n.release_date.expect("asserted above"))
}