aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--import/src/lib.rs20
-rw-r--r--import/src/plugins/misc.rs6
-rw-r--r--import/src/plugins/mod.rs1
-rw-r--r--ui/src/admin/import.rs2
4 files changed, 21 insertions, 8 deletions
diff --git a/import/src/lib.rs b/import/src/lib.rs
index 763af42..0f61c48 100644
--- a/import/src/lib.rs
+++ b/import/src/lib.rs
@@ -112,12 +112,14 @@ fn import(db: &Database, incremental: bool) -> Result<()> {
let rt = Handle::current();
files.into_par_iter().for_each(|(path, parent, iflags)| {
+ reporting::set_task(format!("unknown: {path:?}"));
import_file(db, &rt, &plugins, &path, parent, iflags);
IMPORT_PROGRESS
.blocking_write()
.as_mut()
.unwrap()
.finished_items += 1;
+ reporting::set_task("idle".to_owned());
});
Ok(())
@@ -234,9 +236,7 @@ fn import_file(
}
}
}
- }
-
- if filename.ends_with("mkv") || filename.ends_with("mka") || filename.ends_with("mks") {
+ } else if filename.ends_with("mkv") || filename.ends_with("mka") || filename.ends_with("mks") {
let slug = get_node_slug(path).unwrap();
let node = NodeID::from_slug(&slug);
@@ -250,6 +250,7 @@ fn import_file(
}))
.is_some();
+ reporting::set_task(format!("demuxer meta: {path:?}"));
let Some(seg) =
reporting::catch(read_media_metadata(path).context(anyhow!("media {path:?}")))
else {
@@ -266,7 +267,18 @@ fn import_file(
.is_some();
}
}
- reporting::set_task("idle".to_owned());
+ } else {
+ for p in plugins {
+ let inf = p.info();
+ if inf.handle_file {
+ reporting::set_task(format!("{}(file): {path:?}", inf.name));
+ all_ok &= reporting::catch(
+ p.file(&ImportContext { db, rt, iflags }, parent, path)
+ .context(anyhow!("{}(file) {path:?}", inf.name)),
+ )
+ .is_some();
+ }
+ }
}
if all_ok {
diff --git a/import/src/plugins/misc.rs b/import/src/plugins/misc.rs
index 8d7028c..b879586 100644
--- a/import/src/plugins/misc.rs
+++ b/import/src/plugins/misc.rs
@@ -33,9 +33,9 @@ impl ImportPlugin for ImageFiles {
"backdrop.jpeg" | "backdrop.webp" | "backdrop.png" => PictureSlot::Backdrop,
_ => return Ok(()),
};
- info!("import {slot:?} at {path:?}");
+ info!("import {slot} at {path:?}");
let asset = Asset(cache_store(
- format!("media/literal/{}-poster.image", HashKey(path)),
+ format!("media/literal/{}-{slot}.image", HashKey(path)),
|| {
let mut data = Vec::new();
File::open(path)?.read_to_end(&mut data)?;
@@ -43,7 +43,7 @@ impl ImportPlugin for ImageFiles {
},
)?);
ct.db.update_node_init(parent, |node| {
- node.pictures.insert(PictureSlot::Cover, asset);
+ node.pictures.insert(slot, asset);
Ok(())
})?;
Ok(())
diff --git a/import/src/plugins/mod.rs b/import/src/plugins/mod.rs
index cf0da1c..d4e49b5 100644
--- a/import/src/plugins/mod.rs
+++ b/import/src/plugins/mod.rs
@@ -67,6 +67,7 @@ pub fn init_plugins(secrets: &ApiSecrets) -> Vec<Box<dyn ImportPlugin>> {
plugins.push(Box::new(misc::ImageFiles));
plugins.push(Box::new(tags::Tags));
plugins.push(Box::new(media_info::MediaInfo));
+ plugins.push(Box::new(infojson::Infojson));
if let Some(s) = &secrets.trakt {
plugins.push(Box::new(trakt::Trakt::new(&s)));
diff --git a/ui/src/admin/import.rs b/ui/src/admin/import.rs
index 04b80b2..be3801b 100644
--- a/ui/src/admin/import.rs
+++ b/ui/src/admin/import.rs
@@ -13,7 +13,7 @@ use jellycommon::routes::u_admin_import_post;
impl Page for AdminImportPage<'_> {
fn title(&self) -> String {
- "User Management".to_string()
+ "Import".to_string()
}
fn to_render(&self) -> markup::DynRender<'_> {
markup::new!(@self)