diff options
-rw-r--r-- | base/src/lib.rs | 6 | ||||
-rw-r--r-- | client/src/lib.rs | 12 | ||||
-rw-r--r-- | server/src/routes/ui/node.rs | 43 |
3 files changed, 39 insertions, 22 deletions
diff --git a/base/src/lib.rs b/base/src/lib.rs index 48d3b37..015b62b 100644 --- a/base/src/lib.rs +++ b/base/src/lib.rs @@ -19,7 +19,11 @@ use std::{fs::File, path::PathBuf, sync::LazyLock}; pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(|| { serde_yaml::from_reader( File::open(std::env::var("JELLYTHING_CONFIG").unwrap_or_else(|_| { - if std::env::args().nth(0) == Some("jellything".to_string()) { + if std::env::args() + .nth(0) + .unwrap_or_default() + .ends_with("jellything") + { std::env::args().nth(1).expect( "First argument or JELLYTHING_CONFIG must specify the configuration to use.", ) diff --git a/client/src/lib.rs b/client/src/lib.rs index 19be760..f55929a 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -78,6 +78,18 @@ impl Session { .get(format!("{}/n/{id}", self.instance.base())) .send() .await? + .error_for_status()? + .json() + .await?) + } + pub async fn node_extended(&self, id: &str) -> Result<NodePublic> { + debug!("downloading extended node {id:?}"); + Ok(self + .client + .get(format!("{}/n/{id}/extended", self.instance.base())) + .send() + .await? + .error_for_status()? .json() .await?) } diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs index 7f538ac..74dba8a 100644 --- a/server/src/routes/ui/node.rs +++ b/server/src/routes/ui/node.rs @@ -174,29 +174,30 @@ markup::define! { }} }}} } - h2 { "Cast & Crew" } - @for (group, people) in &node_ext.people { - details[open=group==&PeopleGroup::Cast] { - summary { h3 { @format!("{}", group) } } - .hlist { ul.children { @for (i, pe) in people.iter().enumerate() { - li { .card."aspect-port" { - .poster { - a[href="#"] { - img[src=&uri!(r_person_asset(id, i, group, Some(1024))), loading="lazy"]; + @if !node_ext.people.is_empty() { + h2 { "Cast & Crew" } + @for (group, people) in &node_ext.people { + details[open=group==&PeopleGroup::Cast] { + summary { h3 { @format!("{}", group) } } + .hlist { ul.children { @for (i, pe) in people.iter().enumerate() { + li { .card."aspect-port" { + .poster { + a[href="#"] { + img[src=&uri!(r_person_asset(id, i, group, Some(1024))), loading="lazy"]; + } } - // .cardhover { .props { p { @pe.person.name } } } - } - .title { - @pe.person.name br; - @if let Some(c) = pe.characters.get(0) { - .subtitle { @c } - } - @if let Some(c) = pe.jobs.get(0) { - .subtitle { @c } + .title { + @pe.person.name br; + @if let Some(c) = pe.characters.get(0) { + .subtitle { @c } + } + @if let Some(c) = pe.jobs.get(0) { + .subtitle { @c } + } } - } - }} - }}} + }} + }}} + } } } details { |