From 5ccadd8349d30de62959cb98ece6eebd3d50d40b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 11 Jun 2024 14:08:38 +0200 Subject: change probe cache path to be relative --- import/src/lib.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'import') diff --git a/import/src/lib.rs b/import/src/lib.rs index 544937c..89088e9 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -50,9 +50,13 @@ use tokio::{ use trakt::Trakt; static IMPORT_SEM: LazyLock = LazyLock::new(|| Semaphore::new(1)); - pub static IMPORT_ERRORS: RwLock> = RwLock::const_new(Vec::new()); +static RE_EPISODE_FILENAME: LazyLock = + LazyLock::new(|| Regex::new(r#"([sS](\d+))?([eE](\d+))( (.+))?"#).unwrap()); +static RE_YOUTUBE_ID: LazyLock = + LazyLock::new(|| Regex::new(r#"\[([A-Za-z0-9_-]{11})\]"#).unwrap()); + struct Apis { trakt: Option, tmdb: Option, @@ -473,8 +477,9 @@ async fn process_source( let _permit = SEM_IMPORT.acquire().await.unwrap(); let metadata = { let abspath = abspath.clone(); + let mpath = mpath.to_owned(); spawn_blocking(move || { - cache_memory(&["probe", abspath.to_str().unwrap()], || { + cache_memory(&["probe", mpath.to_str().unwrap()], || { let input = File::open(&abspath).context("opening media file")?; let mut input = EbmlReader::new(BufReader::new(input)); import_metadata(&mut input) @@ -489,6 +494,14 @@ async fn process_source( let mut node = Node::default(); if !ignore_metadata { + if let Some(captures) = + RE_EPISODE_FILENAME.captures(abspath.file_stem().unwrap().to_str().unwrap()) + { + node.public.index = captures.get(4).and_then(|a| a.as_str().parse().ok()); + if let Some(title) = captures.get(6) { + node.public.title = Some(title.as_str().to_string()); + } + } node.public.title = metadata.title; node.public.description = metadata.description; node.public.tagline = metadata.tagline; @@ -613,9 +626,6 @@ async fn process_source( Ok(errors) } -static RE_YOUTUBE_ID: LazyLock = - LazyLock::new(|| Regex::new(r#"\[([A-Za-z0-9_-]{11})\]"#).unwrap()); - pub fn infer_id_from_path(path: &Path) -> anyhow::Result { let f = path .file_stem() -- cgit v1.2.3-70-g09d2