diff --git a/src/config.rs b/src/config.rs index 2c459f2..3edaaa0 100644 --- a/src/config.rs +++ b/src/config.rs @@ -12,13 +12,13 @@ pub struct HamVerBotConfig { } pub fn load_config() -> Result { - let config_path = std::env::var("CONFIG_PATH").unwrap_or("config.toml".to_string()); + let config_path = std::env::var("CONFIG_PATH").unwrap_or_else(|_| "config.toml".to_string()); info!("Loading config from {}", config_path); let config = match Config::load(config_path.clone()) { Ok(config) => config, Err(e) => { - error!("Error attempting to read {} : {:?}", config_path.clone(), e); + error!("Error attempting to read {} : {:?}", config_path, e); return Err(ConfigError(e.to_string())); } }; diff --git a/src/fetch.rs b/src/fetch.rs index 76ab78c..c0e7f18 100644 --- a/src/fetch.rs +++ b/src/fetch.rs @@ -101,7 +101,7 @@ pub async fn fetch_events() -> Result>, Box = Vec::with_capacity(5); upcoming_sessions.iter().for_each(|timetable| { - return match chrono::DateTime::parse_from_str( + match chrono::DateTime::parse_from_str( &format!("{} {}", timetable.start_time, timetable.gmt_offset), "%Y-%m-%dT%H:%M:%S %:z", ) { @@ -113,7 +113,7 @@ pub async fn fetch_events() -> Result>, Box { error!("Error parsing start_time: {}", e); } - }; + } }); Ok(Some(events)) diff --git a/src/main.rs b/src/main.rs index e7d13de..80c3c5d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -85,7 +85,7 @@ async fn main() -> irc::error::Result<()> { "{}\x00{}\x00{}", client_clone.clone().current_nickname(), client_clone.clone().current_nickname(), - config.irc.password().to_string() + config.irc.password() ))))?; sender.send(Command::CAP(None, "END".parse().unwrap(), None, None))?; } diff --git a/src/message.rs b/src/message.rs index 2d10303..9265e91 100644 --- a/src/message.rs +++ b/src/message.rs @@ -78,9 +78,9 @@ pub async fn handle_irc_message( // Human readable time until event_time pub(crate) fn string_builder(event_name: &str, event_time: i64) -> String { - let parsed_time = chrono::Utc.timestamp(event_time, 0); + let parsed_time = chrono::Utc.timestamp_opt(event_time, 0); - let time_left = parsed_time - chrono::Utc::now(); + let time_left = parsed_time.single().unwrap() - chrono::Utc::now(); let mut time_left_string: String; if time_left.num_days() > 0 { diff --git a/src/models.rs b/src/models.rs index 0cf7508..0df8809 100644 --- a/src/models.rs +++ b/src/models.rs @@ -67,19 +67,19 @@ pub struct ArchiveStatus { pub status: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SPFeed { pub free: Free, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Free { pub data: Data, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Data { #[serde(rename = "DR")] @@ -90,7 +90,7 @@ pub struct Data { pub r: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct F1APIDriverStanding { pub position: i8, pub driver_name: String, @@ -99,27 +99,27 @@ pub struct F1APIDriverStanding { pub difference: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct SessionResults { pub title: String, pub standings: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Dr4 { #[serde(rename = "F")] pub f: (String, String, String, String, String, i64), } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Root { pub season_context: SeasonContext, pub race: Race, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Race { pub meeting_country_name: String, @@ -128,13 +128,13 @@ pub struct Race { pub meeting_end_date: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SeasonContext { pub timetables: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Timetable { pub state: String, @@ -145,21 +145,21 @@ pub struct Timetable { pub start_time: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct CurrentDriverStandings { #[serde(rename = "MRData")] pub mrdata: DriversMrdata, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct CurrentConstructorStandings { #[serde(rename = "MRData")] pub mrdata: ConstructorsMrdata, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct DriversMrdata { pub xmlns: String, @@ -172,7 +172,7 @@ pub struct DriversMrdata { pub standings_table: DriverStandingsTable, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ConstructorsMrdata { pub xmlns: String, @@ -185,7 +185,7 @@ pub struct ConstructorsMrdata { pub standings_table: ConstructorStandingsTable, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct DriverStandingsTable { pub season: String, @@ -193,7 +193,7 @@ pub struct DriverStandingsTable { pub standings_lists: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ConstructorStandingsTable { pub season: String, @@ -201,7 +201,7 @@ pub struct ConstructorStandingsTable { pub standings_lists: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct DriverStandingsList { pub season: String, @@ -210,7 +210,7 @@ pub struct DriverStandingsList { pub driver_standings: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ConstructorStandingsList { pub season: String, @@ -219,7 +219,7 @@ pub struct ConstructorStandingsList { pub constructor_standings: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ErgastAPIDriverStanding { pub position: String, @@ -232,7 +232,7 @@ pub struct ErgastAPIDriverStanding { pub constructors: Vec, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Driver { pub driver_id: String, @@ -245,7 +245,7 @@ pub struct Driver { pub nationality: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Constructor { pub constructor_id: String, @@ -254,7 +254,7 @@ pub struct Constructor { pub nationality: String, } -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ConstructorStanding { pub position: String,