aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/routes/ui/home.rs31
1 files changed, 23 insertions, 8 deletions
diff --git a/server/src/routes/ui/home.rs b/server/src/routes/ui/home.rs
index 3abc9e9..f9994cc 100644
--- a/server/src/routes/ui/home.rs
+++ b/server/src/routes/ui/home.rs
@@ -18,7 +18,7 @@ use jellybase::{
database::{ReadableTable, TableExt, T_NODE, T_USER_NODE},
CONF,
};
-use jellycommon::user::WatchedState;
+use jellycommon::{user::WatchedState, Rating};
use rocket::{get, State};
use tokio::fs::read_to_string;
@@ -60,6 +60,19 @@ pub fn r_home(sess: Session, db: &State<DataAcid>) -> MyResult<DynLayoutPage> {
.into_iter()
.collect::<Vec<_>>();
+ items.sort_by_key(|(_, n, _)| {
+ n.ratings
+ .get(&Rating::Tmdb)
+ .map(|x| (*x * -1000.) as i32)
+ .unwrap_or(0)
+ });
+
+ let top_rated = items
+ .iter()
+ .take(16)
+ .map(|k| k.to_owned())
+ .collect::<Vec<_>>();
+
items.sort_by_key(|(_, n, _)| n.release_date.map(|d| -d).unwrap_or(i64::MAX));
let latest = items
@@ -84,31 +97,33 @@ pub fn r_home(sess: Session, db: &State<DataAcid>) -> MyResult<DynLayoutPage> {
title: "Home".to_string(),
content: markup::new! {
h2 { "Explore " @CONF.brand }
- ul.hlist {@for (id, node, udata) in &toplevel {
+ ul.children.hlist {@for (id, node, udata) in &toplevel {
li { @NodeCard { id, node, udata } }
}}
@if !continue_watching.is_empty() {
h2 { "Continue Watching" }
- ul.hlist {@for (id, node, udata) in &continue_watching {
+ ul.children.hlist {@for (id, node, udata) in &continue_watching {
li { @NodeCard { id, node, udata } }
}}
}
@if !watchlist.is_empty() {
h2 { "Watchlist" }
- ul.hlist {@for (id, node, udata) in &watchlist {
+ ul.children.hlist {@for (id, node, udata) in &watchlist {
li { @NodeCard { id, node, udata } }
}}
}
h2 { "Latest Releases" }
- ul.hlist {@for (id, node, udata) in &latest {
+ ul.children.hlist {@for (id, node, udata) in &latest {
li { @NodeCard { id, node, udata } }
}}
h2 { "Today's Picks" }
- ul.hlist {@for (id, node, udata) in &random {
+ ul.children.hlist {@for (id, node, udata) in &random {
+ li { @NodeCard { id, node, udata } }
+ }}
+ h2 { "Top Rated" }
+ ul.children.hlist {@for (id, node, udata) in &top_rated {
li { @NodeCard { id, node, udata } }
}}
- p.error { "TODO: recently added" }
- p.error { "TODO: best rating" }
},
..Default::default()
})