diff options
Diffstat (limited to 'server/src/library.rs')
-rw-r--r-- | server/src/library.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/server/src/library.rs b/server/src/library.rs index 37d71df..17adf3c 100644 --- a/server/src/library.rs +++ b/server/src/library.rs @@ -1,7 +1,12 @@ use anyhow::{anyhow, bail, Context, Ok}; use jellycommon::{DirectoryInfo, ItemInfo}; use log::info; -use std::{ffi::OsStr, fs::File, path::PathBuf, sync::Arc}; +use std::{ + ffi::OsStr, + fs::File, + path::{Path, PathBuf}, + sync::Arc, +}; pub struct Library { pub root: Arc<Node>, @@ -26,7 +31,7 @@ pub struct Item { pub fs_path: PathBuf, pub lib_path: PathBuf, pub identifier: String, - pub data: ItemInfo, + pub info: ItemInfo, } impl Library { @@ -35,6 +40,9 @@ impl Library { root: Node::from_path(path.into(), PathBuf::new(), true).context("indexing root")?, }) } + pub fn nested_path(&self, path: &Path) -> anyhow::Result<Arc<Node>> { + self.nested(path.to_str().unwrap()) + } pub fn nested(&self, path: &str) -> anyhow::Result<Arc<Node>> { let mut n = self.root.clone(); if path == "" { @@ -66,7 +74,7 @@ impl Node { pub fn title(&self) -> &str { match self { Node::Directory(d) => &d.data.name, - Node::Item(i) => &i.data.title, + Node::Item(i) => &i.info.title, } } pub fn identifier(&self) -> &str { @@ -133,7 +141,7 @@ impl Node { Ok(Node::Item(Arc::new(Item { fs_path: path.clone(), lib_path: lib_path.join(identifier.clone()), - data, + info: data, identifier, })) .into()) |