diff options
Diffstat (limited to 'import/src/lib.rs')
-rw-r--r-- | import/src/lib.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/import/src/lib.rs b/import/src/lib.rs index 4be2151..2de4cc9 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -14,7 +14,7 @@ use jellybase::{ database::Database, CONF, SECRETS, }; -use matroska::matroska_metadata; +use jellyremuxer::metadata::matroska_metadata; use rayon::iter::{ParallelDrainRange, ParallelIterator}; use std::{ collections::HashMap, @@ -243,6 +243,13 @@ fn import_media_file(db: &Database, path: &Path, parent: NodeID) -> Result<()> { let info = m.info.ok_or(anyhow!("no info"))?; let tracks = m.tracks.ok_or(anyhow!("no tracks"))?; + let infojson = m + .infojson + .as_ref() + .map(|ij| serde_json::from_slice::<infojson::YVideo>(ij)) + .transpose() + .context("infojson")?; + let mut tags = m .tags .map(|tags| { @@ -260,8 +267,7 @@ fn import_media_file(db: &Database, path: &Path, parent: NodeID) -> Result<()> { .to_string_lossy() .to_string(); - let slug = m - .infojson + let slug = infojson .as_ref() .map(|ij| format!("youtube-{}", ij.id)) .unwrap_or(make_kebab(&filepath_stem)); @@ -311,7 +317,7 @@ fn import_media_file(db: &Database, path: &Path, parent: NodeID) -> Result<()> { }) .collect::<Vec<_>>(); - if let Some(infojson) = m.infojson { + if let Some(infojson) = infojson { node.kind = Some( if !tracks .iter() |