diff --git a/Cargo.lock b/Cargo.lock index 8890c87..037981d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -165,12 +165,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "levenshtein" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" - [[package]] name = "libc" version = "0.2.143" @@ -202,7 +196,7 @@ dependencies = [ "chrono", "chrono-tz", "iana-time-zone", - "levenshtein", + "strsim", ] [[package]] @@ -337,6 +331,12 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "syn" version = "1.0.109" diff --git a/Cargo.toml b/Cargo.toml index efdd771..f942d4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" chrono = "0.4.24" chrono-tz = "0.8.2" iana-time-zone = "0.1.56" -levenshtein = "1.0.5" +strsim = "0.10.0" [lib] crate_type = ["cdylib"] diff --git a/src/lib.rs b/src/lib.rs index 5fbae12..3313078 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,7 +3,7 @@ use std::ffi::{c_char, c_double, CStr, CString}; use chrono::Local; use chrono_tz::{Tz, TZ_VARIANTS}; -use levenshtein::levenshtein; +use strsim::levenshtein; #[no_mangle] pub extern "C" fn id() -> *const c_char { @@ -32,10 +32,10 @@ pub extern "C" fn get_priority(data: *const c_char) -> c_double { #[no_mangle] pub extern "C" fn get_timezone_name(data: *const c_char) -> *const c_char { let data = ptr_to_string(data); - let local_time = iana_time_zone::get_timezone().unwrap_or_default(); + let local_timezone = iana_time_zone::get_timezone().unwrap_or_default(); if data == "" { - return str_to_ptr(&local_time); + return str_to_ptr(&local_timezone); } if let Some(timezone) = get_closest_zone(data) { @@ -77,12 +77,13 @@ fn get_closest_zone(zone: String) -> Option { &zone.to_string().to_lowercase(), &variant.to_string().to_lowercase(), ); + if variant_distance < closest_distance { closest_distance = variant_distance; closest_zone = Some(variant); } } - + closest_zone } diff --git a/src/panel/src/App.tsx b/src/panel/src/App.tsx index ce22bcb..0ed07fe 100644 --- a/src/panel/src/App.tsx +++ b/src/panel/src/App.tsx @@ -70,7 +70,7 @@ const App: Component = () => { Invalid time zone specified! - {`It's currently ${time()} in ${timezone()}`} + {`It's currently ${time()} in ${timezone().replaceAll("_", " ")}`} );