diff --git a/src/memories.rs b/src/memories.rs index e0ab6f3..8e00382 100644 --- a/src/memories.rs +++ b/src/memories.rs @@ -235,6 +235,15 @@ fn extract_date_from_filename(filename: &str) -> Option> { return Some(captures); } + // Dash with compact time format: 2015-01-09-021515.jpg + if let Some(captures) = regex::Regex::new(r"(\d{4})-(\d{2})-(\d{2})-(\d{2})(\d{2})(\d{2})") + .ok()? + .captures(filename) + .and_then(|c| build_date_from_ymd_capture(&c)) + { + return Some(captures); + } + // 3. Compact format: 20140927101712.jpg if let Some(captures) = regex::Regex::new(r"(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})") .ok()? @@ -510,6 +519,19 @@ mod tests { assert_eq!(date_time.second(), 15); } + #[test] + fn test_extract_date_from_filename_dash_compact_time_format() { + let filename = "2015-01-09-021515.jpg"; + let date_time = extract_date_from_filename(filename).unwrap(); + + assert_eq!(date_time.year(), 2015); + assert_eq!(date_time.month(), 1); + assert_eq!(date_time.day(), 9); + assert_eq!(date_time.hour(), 2); + assert_eq!(date_time.minute(), 15); + assert_eq!(date_time.second(), 15); + } + #[test] fn test_extract_date_from_filename_compact_format() { let filename = "20140927101712.jpg";