diff --git a/ewwtilities/src/calendar_background.rs b/ewwtilities/src/calendar_background.rs index f7aae6f..6628294 100644 --- a/ewwtilities/src/calendar_background.rs +++ b/ewwtilities/src/calendar_background.rs @@ -41,14 +41,14 @@ pub fn run_calendar(args: &CliArgs) { } let value = buffer[21..].to_string(); - if value.starts_with("Moonrise") { - moonrise = parse_time(value[8..].trim()); - } else if value.starts_with("Moonset") { - moonset = parse_time(value[7..].trim()); - } else if value.starts_with("Moonday") { - moonday = parse_time(value[7..].trim()); - } else if value.starts_with("Moonphase") { - moonphase = match value[9..].trim()[0..2].parse::() { + if let Some(time) = value.strip_prefix("Moonrise") { + moonrise = parse_time(time.trim()); + } else if let Some(time) = value.strip_prefix("Moonset") { + moonset = parse_time(time.trim()); + } else if let Some(time) = value.strip_prefix("Moonday") { + moonday = parse_time(time.trim()); + } else if let Some(phase) = value.strip_prefix("Moonphase") { + moonphase = match phase.trim()[0..2].parse::() { Ok(val) => Some(val), Err(e) => { if args.debug { @@ -57,10 +57,10 @@ pub fn run_calendar(args: &CliArgs) { None } }; - } else if value.starts_with("Sunrise") { - sunrise = parse_time(value[7..].trim()); - } else if value.starts_with("Sunset") { - sunset = parse_time(value[6..].trim()); + } else if let Some(time) = value.strip_prefix("Sunrise") { + sunrise = parse_time(time.trim()); + } else if let Some(time) = value.strip_prefix("Sunset") { + sunset = parse_time(time.trim()); } else { continue; } @@ -83,66 +83,58 @@ pub fn run_calendar(args: &CliArgs) { moonphase: 0, }; - if moonphase.is_some() { - output_state.moonphase = moonphase.unwrap(); + if let Some(moon_phase) = moonphase { + output_state.moonphase = moon_phase; } let now_mins = (Local::now().hour() * 60 + Local::now().minute()) as i32; if sunrise.is_none() { - sunrise = Some(8 * 60 + 0); + sunrise = Some(8 * 60); } if sunset.is_none() { - sunset = Some(18 * 60 + 0); + sunset = Some(18 * 60); } - let sun_rise = sunrise.clone().unwrap(); - let sun_set = sunset.clone().unwrap(); + let sun_rise = sunrise.unwrap(); + let sun_set = sunset.unwrap(); if now_mins > sun_rise && now_mins < sun_set { // it is after sunrise, and before sunset output_state.has_bg = true; output_state.is_sun = true; output_state.gradient_angle_percentage = - { (now_mins - sun_rise) as f32 / (sun_set - sun_rise) as f32 }; + (now_mins - sun_rise) as f32 / (sun_set - sun_rise) as f32; } else { // Check if the moon is up - if moonrise.is_some() { - let moon_rise = moonrise.clone().unwrap(); - if moonset.is_some() { - let moon_set = moonset.clone().unwrap(); - if now_mins > moon_rise && now_mins < moon_set { + if let Some(moon_rise) = moonphase { + if let Some(moon_set) = moonset { + if now_mins > moon_rise as i32 && now_mins < moon_set { // moon is up output_state.has_bg = true; output_state.is_sun = false; } - } else { - if now_mins > moon_rise { - output_state.has_bg = true; - output_state.is_sun = false; - } + } else if now_mins > moon_rise as i32 { + output_state.has_bg = true; + output_state.is_sun = false; } - } else { - if moonset.is_some() { - let moon_set = moonset.clone().unwrap(); - if now_mins < moon_set { - // moon is up - output_state.has_bg = true; - output_state.is_sun = false; - } + } else if let Some(moon_set) = moonset { + if now_mins < moon_set { + // moon is up + output_state.has_bg = true; + output_state.is_sun = false; } } - if output_state.has_bg == true && output_state.is_sun == false { + if output_state.has_bg && !output_state.is_sun { // moon is up, get the position - if moonrise.is_some() { - let moon_rise = moonrise.clone().unwrap(); - let moon_day = moonday.clone().unwrap(); + if let Some(moon_rise) = moonrise { + let moon_day = moonday.unwrap(); output_state.gradient_angle_percentage = - { (now_mins - moon_rise) as f32 / moon_day as f32 }; + (now_mins - moon_rise) as f32 / moon_day as f32; } else { - let moon_set = moonset.clone().unwrap(); - let moon_day = moonday.clone().unwrap(); + let moon_set = moonset.unwrap(); + let moon_day = moonday.unwrap(); let begin_mins: i32 = moon_set - moon_day; let time_since_rise = now_mins + (begin_mins.abs()); output_state.gradient_angle_percentage = time_since_rise as f32 / moon_set as f32;