diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-05 12:32:35 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-05 12:32:35 +0200 |
commit | ba3dedfaa6fee280761282f50fdee92b65cf0bfd (patch) | |
tree | 2798c163a2ff3fd9c11ca68dab9e6ca2f9a73cf9 /server/src/import.rs | |
parent | abb8e4a10f0ac0a8c0a652efe8b0efc0da59c46e (diff) | |
download | jellything-ba3dedfaa6fee280761282f50fdee92b65cf0bfd.tar jellything-ba3dedfaa6fee280761282f50fdee92b65cf0bfd.tar.bz2 jellything-ba3dedfaa6fee280761282f50fdee92b65cf0bfd.tar.zst |
ability to override id from json and import
Diffstat (limited to 'server/src/import.rs')
-rw-r--r-- | server/src/import.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/server/src/import.rs b/server/src/import.rs index 3b45f14..d72690c 100644 --- a/server/src/import.rs +++ b/server/src/import.rs @@ -100,14 +100,15 @@ pub async fn import_path( info!("loading {path:?}"); let datafile = File::open(path.clone()).context("cant load metadata")?; let mut data: Node = serde_json::from_reader(datafile).context("invalid metadata")?; - let identifier = path - .file_name() - .unwrap() - .to_str() - .unwrap() - .strip_suffix(".jelly") - .unwrap() - .to_string(); + let identifier = data.private.id.clone().unwrap_or_else(|| { + path.file_name() + .unwrap() + .to_str() + .unwrap() + .strip_suffix(".jelly") + .unwrap() + .to_string() + }); if let Some(io) = data.private.import.take() { let session = fed @@ -152,6 +153,7 @@ async fn import_remote( backdrop: Some(AssetLocation::Cache(backdrop)), poster: Some(AssetLocation::Cache(poster)), import: None, + id: None, source: Some(MediaSource::Remote { host: opts.host.clone(), remote_id: opts.id.clone(), |