diff --git a/aoc-client/src/lib.rs b/aoc-client/src/lib.rs index 87384c2..21434d4 100644 --- a/aoc-client/src/lib.rs +++ b/aoc-client/src/lib.rs @@ -368,9 +368,10 @@ impl AocClient { // Remove 2019 shadows r#"|(]*>\.)"#, - // Remove 2019 "sunbeam" - r#"|(]*>"#, - r#"]*>"#, + r#"(]*style="[^>]*animation-delay[^>]*>[^>]*)+"#, + r#")"#, )) .unwrap() .replace_all(&main, "") @@ -384,28 +385,28 @@ impl AocClient { )) .unwrap(); - let all_stars = main.contains("calendar calendar-perfect"); - // Remove stars that have not been collected + let mut star_state = ""; + let calendar = cleaned_up .lines() .map(|line| { let class = class_regex .captures(line) .and_then(|c| c.name("class")) - .map(|c| c.as_str()) - .unwrap_or(""); + .map(|c| c.as_str()); - let stars = - if class.contains("calendar-verycomplete") || all_stars { + if let Some(class) = class { + star_state = if class.contains("calendar-verycomplete") { "**" } else if class.contains("calendar-complete") { "*" } else { "" }; + } - star_regex.replace(line, stars) + star_regex.replace(line, star_state) }) .collect::>() .join("\n");