Migrate from Chrono English to Dateparser

This commit is contained in:
Joakim Soderlund 2024-03-31 16:01:02 +02:00
parent 217eb6240f
commit 01215c4178
3 changed files with 28 additions and 28 deletions

48
Cargo.lock generated
View file

@ -32,6 +32,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "anyhow"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
[[package]] [[package]]
name = "autocfg" name = "autocfg"
version = "1.2.0" version = "1.2.0"
@ -76,9 +82,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.35" version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
@ -89,16 +95,6 @@ dependencies = [
"windows-targets", "windows-targets",
] ]
[[package]]
name = "chrono-english"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f73d909da7eb4a7d88c679c3f5a1bc09d965754e0adb2e7627426cef96a00d6f"
dependencies = [
"chrono",
"scanlex",
]
[[package]] [[package]]
name = "clipboard-win" name = "clipboard-win"
version = "5.3.0" version = "5.3.0"
@ -148,6 +144,18 @@ version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
[[package]]
name = "dateparser"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ef451feee09ae5ecd8a02e738bd9adee9266b8fa9b44e22d3ce968d8694238"
dependencies = [
"anyhow",
"chrono",
"lazy_static",
"regex",
]
[[package]] [[package]]
name = "either" name = "either"
version = "1.10.0" version = "1.10.0"
@ -187,7 +195,7 @@ name = "fimfareader-query"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"chrono", "chrono",
"chrono-english", "dateparser",
"fimfareader", "fimfareader",
"nom", "nom",
"rayon", "rayon",
@ -268,9 +276,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.7.1" version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]] [[package]]
name = "minimal-lexical" name = "minimal-lexical"
@ -416,12 +424,6 @@ version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
[[package]]
name = "scanlex"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "088c5d71572124929ea7549a8ce98e1a6fd33d0a38367b09027b382e67c033db"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.197" version = "1.0.197"
@ -455,9 +457,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.55" version = "2.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View file

@ -10,7 +10,7 @@ path = ".."
[dependencies.chrono] [dependencies.chrono]
version = "*" version = "*"
[dependencies.chrono-english] [dependencies.dateparser]
version = "*" version = "*"
[dependencies.nom] [dependencies.nom]

View file

@ -1,9 +1,7 @@
//! Query optimizer. //! Query optimizer.
use chrono::prelude::*; use chrono::prelude::*;
use dateparser::parse_with_timezone;
use chrono_english::parse_date_string;
use chrono_english::Dialect;
use regex::escape; use regex::escape;
use regex::RegexBuilder; use regex::RegexBuilder;
@ -71,7 +69,7 @@ fn intfn(f: IntFn, op: Operator, value: &str) -> Result<Filter> {
} }
fn dtufn(f: DtuFn, op: Operator, value: &str) -> Result<Filter> { fn dtufn(f: DtuFn, op: Operator, value: &str) -> Result<Filter> {
let Ok(value) = parse_date_string(value, Utc::now(), Dialect::Uk) else { let Ok(value) = parse_with_timezone(value, &Local) else {
return Err(Error::query("Invalid value for date type")); return Err(Error::query("Invalid value for date type"));
}; };