aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-12-21 23:57:42 +0100
committermetamuffin <metamuffin@disroot.org>2023-12-21 23:57:42 +0100
commit3a29113e965a94bdef06655f1583cc6e86edd606 (patch)
treea0910fa9687a9935ba1ca85a9cb5def1a0bc9069 /server/src/routes/ui
parenta8b2480e898e269e7e0d41dbd46d9a18c7d1e4ba (diff)
downloadjellything-3a29113e965a94bdef06655f1583cc6e86edd606.tar
jellything-3a29113e965a94bdef06655f1583cc6e86edd606.tar.bz2
jellything-3a29113e965a94bdef06655f1583cc6e86edd606.tar.zst
rework import system pt. 1
Diffstat (limited to 'server/src/routes/ui')
-rw-r--r--server/src/routes/ui/admin/mod.rs5
-rw-r--r--server/src/routes/ui/node.rs22
-rw-r--r--server/src/routes/ui/player.rs2
-rw-r--r--server/src/routes/ui/sort.rs16
4 files changed, 23 insertions, 22 deletions
diff --git a/server/src/routes/ui/admin/mod.rs b/server/src/routes/ui/admin/mod.rs
index 0d1ee0a..b976192 100644
--- a/server/src/routes/ui/admin/mod.rs
+++ b/server/src/routes/ui/admin/mod.rs
@@ -9,8 +9,6 @@ pub mod user;
use super::account::session::AdminSession;
use crate::{
database::Database,
- federation::Federation,
- import::import,
routes::ui::{
admin::log::rocket_uri_macro_r_admin_log,
error::MyResult,
@@ -19,7 +17,8 @@ use crate::{
uri,
};
use anyhow::anyhow;
-use jellybase::CONF;
+use jellybase::{federation::Federation, CONF};
+use jellyimport::import;
use rand::Rng;
use rocket::{form::Form, get, post, FromForm, State};
use std::time::Instant;
diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs
index 6e2f532..bcb7362 100644
--- a/server/src/routes/ui/node.rs
+++ b/server/src/routes/ui/node.rs
@@ -72,7 +72,7 @@ pub async fn r_library_node_filter<'a>(
filter_and_sort_nodes(&filter, &mut children);
Ok(Either::Left(LayoutPage {
- title: node.title.to_string(),
+ title: node.title.clone().unwrap_or_default(),
content: markup::new! {
@NodePage { node: &node, id: &id, udata: &udata, children: &children, filter: &filter }
},
@@ -82,14 +82,14 @@ pub async fn r_library_node_filter<'a>(
markup::define! {
NodeCard<'a>(id: &'a str, node: &'a NodePublic, udata: &'a NodeUserData) {
- @let cls = format!("node card poster {}", match node.kind {NodeKind::Channel => "aspect-square", NodeKind::Video => "aspect-thumb", NodeKind::Collection => "aspect-land", _ => "aspect-port"});
+ @let cls = format!("node card poster {}", match node.kind.unwrap_or_default() {NodeKind::Channel => "aspect-square", NodeKind::Video => "aspect-thumb", NodeKind::Collection => "aspect-land", _ => "aspect-port"});
div[class=cls] {
.poster {
a[href=uri!(r_library_node(id))] {
img[src=uri!(r_item_assets(id, AssetRole::Poster, Some(1024)))];
}
.cardhover.item {
- @if !(matches!(node.kind, NodeKind::Collection | NodeKind::Channel)) {
+ @if !(matches!(node.kind.unwrap_or_default(), NodeKind::Collection | NodeKind::Channel)) {
a.play.icon[href=&uri!(r_player(id, PlayerConfig::default()))] { "play_arrow" }
}
@Props { node, udata }
@@ -103,17 +103,17 @@ markup::define! {
}
}
NodePage<'a>(id: &'a str, node: &'a NodePublic, udata: &'a NodeUserData, children: &'a Vec<(String, NodePublic, NodeUserData)>, filter: &'a NodeFilterSort) {
- @if !matches!(node.kind, NodeKind::Collection) {
+ @if !matches!(node.kind.unwrap_or_default(), NodeKind::Collection) {
img.backdrop[src=uri!(r_item_assets(id, AssetRole::Backdrop, Some(2048)))];
}
.page.node {
- @if !matches!(node.kind, NodeKind::Collection) {
+ @if !matches!(node.kind.unwrap_or_default(), NodeKind::Collection) {
div.bigposter { img[src=uri!(r_item_assets(id, AssetRole::Poster, Some(2048)))]; }
}
.title {
h1 { @node.title }
@if node.media.is_some() { a.play[href=&uri!(r_player(id, PlayerConfig::default()))] { "Watch now" }}
- @if !matches!(node.kind, NodeKind::Collection | NodeKind::Channel) {
+ @if !matches!(node.kind.unwrap_or_default(), NodeKind::Collection | NodeKind::Channel) {
@match udata.watched {
WatchedState::None |
WatchedState::Progress(_) => {
@@ -152,15 +152,15 @@ markup::define! {
}
}
}
- @if matches!(node.kind, NodeKind::Collection | NodeKind::Channel) {
- @if matches!(node.kind, NodeKind::Collection) {
+ @if matches!(node.kind.unwrap_or_default(), NodeKind::Collection | NodeKind::Channel) {
+ @if matches!(node.kind.unwrap_or_default(), NodeKind::Collection) {
@if let Some(parent) = &node.path.last().cloned() {
a.dirup[href=uri!(r_library_node(parent))] { "Go up" }
}
}
@NodeFilterSortForm { f: filter }
}
- @match node.kind {
+ @match node.kind.unwrap_or_default() {
NodeKind::Collection | NodeKind::Channel => {
ul.children {@for (id, node, udata) in children.iter() {
li { @NodeCard { id, node, udata } }
@@ -261,7 +261,9 @@ impl MediaInfoExt for MediaInfo {
let mut maxdim = 0;
for t in &self.tracks {
match &t.kind {
- SourceTrackKind::Video { width, height, .. } => maxdim = maxdim.max(*width.max(height)),
+ SourceTrackKind::Video { width, height, .. } => {
+ maxdim = maxdim.max(*width.max(height))
+ }
_ => (),
}
}
diff --git a/server/src/routes/ui/player.rs b/server/src/routes/ui/player.rs
index 177a5f6..8b8adf6 100644
--- a/server/src/routes/ui/player.rs
+++ b/server/src/routes/ui/player.rs
@@ -59,7 +59,7 @@ pub fn r_player<'a>(
let conf = player_conf(item.clone(), playing)?;
Ok(LayoutPage {
- title: item.public.title.to_owned(),
+ title: item.public.title.to_owned().unwrap_or_default(),
class: Some("player"),
content: markup::new! {
@if playing {
diff --git a/server/src/routes/ui/sort.rs b/server/src/routes/ui/sort.rs
index c7fbfc2..143a101 100644
--- a/server/src/routes/ui/sort.rs
+++ b/server/src/routes/ui/sort.rs
@@ -139,14 +139,14 @@ pub fn filter_and_sort_nodes(
o &= !match p {
FilterProperty::FederationLocal => node.federated.is_none(),
FilterProperty::FederationRemote => node.federated.is_some(),
- FilterProperty::KindMovie => node.kind == NodeKind::Movie,
- FilterProperty::KindVideo => node.kind == NodeKind::Video,
- FilterProperty::KindCollection => node.kind == NodeKind::Collection,
- FilterProperty::KindChannel => node.kind == NodeKind::Channel,
- FilterProperty::KindShow => node.kind == NodeKind::Show,
- FilterProperty::KindSeries => node.kind == NodeKind::Series,
- FilterProperty::KindSeason => node.kind == NodeKind::Season,
- FilterProperty::KindEpisode => node.kind == NodeKind::Episode,
+ FilterProperty::KindMovie => node.kind == Some(NodeKind::Movie),
+ FilterProperty::KindVideo => node.kind == Some(NodeKind::Video),
+ FilterProperty::KindCollection => node.kind == Some(NodeKind::Collection),
+ FilterProperty::KindChannel => node.kind == Some(NodeKind::Channel),
+ FilterProperty::KindShow => node.kind == Some(NodeKind::Show),
+ FilterProperty::KindSeries => node.kind == Some(NodeKind::Series),
+ FilterProperty::KindSeason => node.kind == Some(NodeKind::Season),
+ FilterProperty::KindEpisode => node.kind == Some(NodeKind::Episode),
FilterProperty::Watched => udata.watched == WatchedState::Watched,
FilterProperty::Unwatched => udata.watched == WatchedState::None,
FilterProperty::WatchProgress => {