diff --git a/src/files.rs b/src/files.rs index c9cc529..bee4037 100644 --- a/src/files.rs +++ b/src/files.rs @@ -70,7 +70,17 @@ pub async fn list_photos( .map(|tagged_files| { tagged_files .into_iter() - .filter(|f| f.starts_with(&format!("{}/", search_path).to_string())) + .filter(|f| { + // When searching at the root, everything matches recursively + if search_path.trim() == "" { return true; } + + f.starts_with( + &format!( + "{}/", + search_path.strip_suffix('/').unwrap_or_else(|| search_path) + ), + ) + }) .collect::>() }) .inspect(|files| debug!("Found {:?} files", files.len())) diff --git a/src/video.rs b/src/video.rs index f915ee5..d593f90 100644 --- a/src/video.rs +++ b/src/video.rs @@ -156,12 +156,16 @@ impl Handler for VideoPlaylistManager { .await .expect("Failed to send generate playlist message") { - Ok(_) => {} + Ok(_) => { + debug!( + "Successfully generated playlist for file: '{}'", + path_as_str + ); + } Err(e) => { warn!("Failed to generate playlist for path '{:?}'. {:?}", path, e); } } - // .expect("Failed to generate video playlist"); } info!( @@ -180,7 +184,7 @@ pub struct ScanDirectoryMessage { } #[derive(Message)] -#[rtype(result = "Result")] +#[rtype(result = "Result<()>")] struct GeneratePlaylistMessage { video_path: PathBuf, playlist_path: String, @@ -203,7 +207,7 @@ impl Actor for PlaylistGenerator { } impl Handler for PlaylistGenerator { - type Result = ResponseFuture>; + type Result = ResponseFuture>; fn handle(&mut self, msg: GeneratePlaylistMessage, _ctx: &mut Self::Context) -> Self::Result { let video_file = msg.video_path.to_str().unwrap().to_owned(); @@ -266,7 +270,7 @@ impl Handler for PlaylistGenerator { ffmpeg_result }); - Ok("meeee".to_string()) + Ok(()) }) } }