aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/routes/ui/player.rs3
-rw-r--r--server/src/routes/ui/sort.rs12
2 files changed, 7 insertions, 8 deletions
diff --git a/server/src/routes/ui/player.rs b/server/src/routes/ui/player.rs
index 1ef0149..80386ad 100644
--- a/server/src/routes/ui/player.rs
+++ b/server/src/routes/ui/player.rs
@@ -39,6 +39,7 @@ pub struct PlayerConfig {
pub v: Option<TrackID>,
pub s: Option<TrackID>,
pub t: Option<f64>,
+ pub kind: Option<PlayerKind>,
}
impl PlayerConfig {
@@ -93,7 +94,7 @@ pub fn r_player<'a>(
))))
};
- match sess.user.player_preference {
+ match conf.kind.unwrap_or(sess.user.player_preference) {
PlayerKind::Browser => (),
PlayerKind::Native => {
return native_session("player");
diff --git a/server/src/routes/ui/sort.rs b/server/src/routes/ui/sort.rs
index 2c5f0cc..542b7af 100644
--- a/server/src/routes/ui/sort.rs
+++ b/server/src/routes/ui/sort.rs
@@ -132,6 +132,7 @@ pub fn filter_and_sort_nodes(
default_sort: (SortProperty, SortOrder),
nodes: &mut Vec<(String, NodePublic, NodeUserData)>,
) {
+ let sort_prop = f.sort_by.unwrap_or(default_sort.0);
nodes.retain(|(_id, node, udata)| {
let mut o = true;
if let Some(prop) = &f.filter_kind {
@@ -158,16 +159,13 @@ pub fn filter_and_sort_nodes(
}
}
}
- 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(),
- _ => (),
- }
+ match sort_prop {
+ 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)