diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a6d77ff..0dfd46c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -759,13 +759,6 @@ async fn get_face_thumbnail(uuid: String, frame: u32, bbox_x: Option, bbox_ Ok(result) } -const PROFILE_DIRS: &[&str] = &[ - "/Users/accusys/momentry/output/identities", - "/Users/accusys/momentry/output_dev/identities", - "/Volumes/external/momentry/output/identities", - "/Volumes/external/momentry/output_dev/identities", -]; - #[tauri::command(rename_all = "camelCase")] async fn get_identity_profile(uuid: String) -> Result { let uuid_display = uuid.clone(); @@ -781,13 +774,13 @@ async fn get_identity_profile(uuid: String) -> Result { } let t = std::time::Instant::now(); let result = (|| -> Option { - for dir in PROFILE_DIRS { - for candidate in [&no_dash, &uuid_display] { - let path = format!("{}/{}/profile.jpg", dir, candidate); - if std::path::Path::new(&path).exists() { - let bytes = std::fs::read(&path).ok()?; - return Some(format!("data:image/jpeg;base64,{}", STANDARD.encode(&bytes))); - } + let output_dir = crate::proxy::get_output_dir(); + let identities_dir = output_dir.join("identities"); + for candidate in [&no_dash, &uuid_display] { + let path = identities_dir.join(candidate).join("profile.jpg"); + if path.exists() { + let bytes = std::fs::read(&path).ok()?; + return Some(format!("data:image/jpeg;base64,{}", STANDARD.encode(&bytes))); } } None diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index a31c467..a0ff37e 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -19,35 +19,41 @@ use lru::LruCache; use tokio::sync::Semaphore; fn get_api_key() -> String { - std::env::var("MOMENTRY_get_api_key()") - .expect("MOMENTRY_get_api_key() environment variable must be set") + std::env::var("MOMENTRY_API_KEY") + .expect("MOMENTRY_API_KEY environment variable must be set") } -fn get_output_dir() -> std::path::PathBuf { - std::env::var("MOMENTRY_OUTPUT_DIR") +pub fn get_output_dir() -> std::path::PathBuf { + std::env::var_os("MOMENTRY_OUTPUT_DIR") .map(std::path::PathBuf::from) - .unwrap_or_else(|_| { - // Dev fallback - std::path::PathBuf::from("/Users/accusys/momentry/output") + .or_else(|| { + std::env::current_exe() + .ok() + .and_then(|p| p.parent().map(|d| d.join("output"))) }) + .unwrap_or_else(|| std::path::PathBuf::from("output")) } fn get_data_dir() -> std::path::PathBuf { - std::env::var("MOMENTRY_DATA_DIR") + std::env::var_os("MOMENTRY_DATA_DIR") .map(std::path::PathBuf::from) - .unwrap_or_else(|_| { - // Dev fallback - std::path::PathBuf::from("/Users/accusys/momentry/data") + .or_else(|| { + std::env::current_exe() + .ok() + .and_then(|p| p.parent().map(|d| d.join("data"))) }) + .unwrap_or_else(|| std::path::PathBuf::from("data")) } fn get_admin_config_path() -> std::path::PathBuf { - std::env::var("MOMENTRY_ADMIN_CONFIG") + std::env::var_os("MOMENTRY_ADMIN_CONFIG") .map(std::path::PathBuf::from) - .unwrap_or_else(|_| { - // Dev fallback - std::path::PathBuf::from("/Users/accusys/momentry/config/admin_config.json") + .or_else(|| { + std::env::current_exe() + .ok() + .and_then(|p| p.parent().map(|d| d.join("config/admin_config.json"))) }) + .unwrap_or_else(|| std::path::PathBuf::from("config/admin_config.json")) } const CORE_API: &str = "http://127.0.0.1:3002";