Fix date parsing for partial versions (#15)

This commit is contained in:
Geometrically
2023-11-15 16:35:33 -07:00
committed by GitHub
parent 6fe1fa3455
commit ac07ac5234
3 changed files with 5 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "daedalus" name = "daedalus"
version = "0.1.26" version = "0.1.27"
authors = ["Jai A <jaiagr+gpg@pm.me>"] authors = ["Jai A <jaiagr+gpg@pm.me>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"

View File

@@ -3,7 +3,7 @@ use crate::{download_file, Error};
use crate::minecraft::{ use crate::minecraft::{
Argument, ArgumentType, Library, VersionInfo, VersionType, Argument, ArgumentType, Library, VersionInfo, VersionType,
}; };
use chrono::{DateTime, Utc}; use chrono::{DateTime, TimeZone, Utc};
use serde::{Deserialize, Deserializer, Serialize}; use serde::{Deserialize, Deserializer, Serialize};
use std::collections::HashMap; use std::collections::HashMap;
@@ -38,12 +38,8 @@ where
{ {
let s = String::deserialize(deserializer)?; let s = String::deserialize(deserializer)?;
DateTime::parse_from_rfc3339(&s) serde_json::from_str::<DateTime<Utc>>(&format!("\"{s}\""))
.map(|dt| dt.with_timezone(&Utc)) .or_else(|_| Utc.datetime_from_str(&s, "%Y-%m-%dT%H:%M:%S%.9f"))
.or_else(|_| {
DateTime::parse_from_str(&s, "%Y-%m-%dT%H:%M:%S%.f")
.map(|dt| dt.with_timezone(&Utc))
})
.map_err(serde::de::Error::custom) .map_err(serde::de::Error::custom)
} }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "daedalus_client" name = "daedalus_client"
version = "0.1.26" version = "0.1.27"
authors = ["Jai A <jaiagr+gpg@pm.me>"] authors = ["Jai A <jaiagr+gpg@pm.me>"]
edition = "2018" edition = "2018"