From 9c04fcb1d1a5129b12c0e11bdb72096b658333ad Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 1 Sep 2025 11:01:01 -0400 Subject: [PATCH] Add additional memories filename regex --- src/memories.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/memories.rs b/src/memories.rs index 01bcf85..8549ae5 100644 --- a/src/memories.rs +++ b/src/memories.rs @@ -144,6 +144,16 @@ fn extract_date_from_filename(filename: &str) -> Option> { return Some(captures); } + // Screenshot format: Screenshot_20140601-204450.png + if let Some(captures) = + regex::Regex::new(r"Screenshot_(\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); + } + // 2. Dash format: 2015-01-09_02-15-15.jpg if let Some(captures) = regex::Regex::new(r"(\d{4})-(\d{2})-(\d{2})_(\d{2})-(\d{2})-(\d{2})") .ok()? @@ -403,6 +413,19 @@ mod tests { assert_eq!(date_time.second(), 50); } + #[test] + fn test_extract_date_from_filename_screenshot_less_dashes_format() { + let filename = "Screenshot_20140601-204450.png"; + let date_time = extract_date_from_filename(filename).unwrap(); + + assert_eq!(date_time.year(), 2014); + assert_eq!(date_time.month(), 6); + assert_eq!(date_time.day(), 1); + assert_eq!(date_time.hour(), 20); + assert_eq!(date_time.minute(), 44); + assert_eq!(date_time.second(), 50); + } + #[test] fn test_extract_date_from_filename_dash_format() { let filename = "2015-01-09_02-15-15.jpg"; -- 2.49.1