diff --git a/Cargo.toml b/Cargo.toml index 6abe63bd..4d33a844 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,4 +11,5 @@ members = [ lto = "fat" codegen-units = 1 opt-level = 3 -strip = "symbols" \ No newline at end of file +strip = "symbols" +panic = "abort" \ No newline at end of file diff --git a/lib/shift-orcz/src/shift_code.rs b/lib/shift-orcz/src/shift_code.rs index 59e32170..4cce7b81 100644 --- a/lib/shift-orcz/src/shift_code.rs +++ b/lib/shift-orcz/src/shift_code.rs @@ -12,7 +12,7 @@ pub const XBOX_CODE_INDEX: usize = 2; static TD_SELECTOR: Lazy = Lazy::new(|| Selector::parse("td").expect("invalid TD_SELECTOR")); static DATE_REGEX: Lazy = Lazy::new(|| { - Regex::new(r"((?P\d{4}).(?P\d{2}).(?P\d{2}))|((?P[[:alpha:]]*?) *(?P\d{1,2})(th|nd)? ?,? (?P\d{4}))").unwrap() + Regex::new(r"((?P\d{4}).(?P\d{2}).(?P\d{2}))|((?P\d{1,2}).(?P\d{2}).(?P\d{4}))|((?P[[:alpha:]]*?) *(?P\d{1,2})(th|nd)? ?,? (?P\d{4}))").unwrap() }); /// Error that may occur while parsing a ShiftCode from an element @@ -230,7 +230,7 @@ fn process_rewards_node(element: ElementRef) -> String { } fn parse_issue_date_str(issue_date_str: &str) -> Result, FromElementError> { - if dbg!(issue_date_str) == "Unknown" { + if issue_date_str == "Unknown" { Ok(None) } else { let captures = DATE_REGEX @@ -238,6 +238,7 @@ fn parse_issue_date_str(issue_date_str: &str) -> Result, From .ok_or(FromElementError::MissingIssueDate)?; let y = captures .name("year_1") + .or_else(|| captures.name("year_1_1")) .or_else(|| captures.name("year_2")) .ok_or(FromElementError::IssueDateMissingYear)? .as_str() @@ -245,6 +246,7 @@ fn parse_issue_date_str(issue_date_str: &str) -> Result, From .map_err(FromElementError::IssueDateInvalidYear)?; let m = captures .name("month_1") + .or_else(|| captures.name("month_1_1")) .map(|month| { let month = month .as_str() @@ -275,6 +277,7 @@ fn parse_issue_date_str(issue_date_str: &str) -> Result, From .ok_or(FromElementError::IssueDateMissingMonth)??; let d = captures .name("day_1") + .or_else(|| captures.name("day_1_1")) .or_else(|| captures.name("day_2")) .ok_or(FromElementError::IssueDateMissingDay)? .as_str()