diff --git a/CHANGELOG.md b/CHANGELOG.md index dc14310..fd8502c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on * Improved item (image) sizing css. I hope it works in safari. * Updated to `diesel` 2.1.0, `diesel-async` 0.3.2, and `ructe` 0.17.0. +* Uses std LazyLock (require rust 1.80) instead of `lazy_regex`. * Some more known kinds of places. diff --git a/Cargo.toml b/Cargo.toml index 50eb14e..5b0312f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ name = "rphotos" version = "0.12.3-PRE" authors = ["Rasmus Kaj "] edition = "2021" +msrv = "1.80" build = "src/build.rs" @@ -21,12 +22,12 @@ flate2 = "1.0.14" futures-lite = "1.12.0" image = "0.24.0" kamadak-exif = "0.5.0" -lazy-regex = "2.2.2" libc = "0.2.68" medallion = "2.3.1" mime = "0.3.0" r2d2-memcache = "0.6" rand = "0.8" +regex = "1.10.5" reqwest = { version = "0.11.0", features = ["json"] } serde = { version = "1.0.0", features = ["derive"] } serde_json = "1.0" diff --git a/src/server/login.rs b/src/server/login.rs index f023b9f..c8bbf3c 100644 --- a/src/server/login.rs +++ b/src/server/login.rs @@ -3,8 +3,9 @@ use crate::schema::users::dsl as u; use crate::templates; use diesel::prelude::*; use diesel_async::{AsyncPgConnection, RunQueryDsl}; -use lazy_regex::regex_is_match; +use regex::Regex; use serde::Deserialize; +use std::sync::LazyLock; use tracing::info; use warp::filters::BoxedFilter; use warp::http::header; @@ -91,8 +92,10 @@ impl LoginForm { } fn sanitize_next(next: Option<&str>) -> Option<&str> { + static RE: LazyLock = + LazyLock::new(|| Regex::new(r"^/([a-z0-9._-]+/?)*$").unwrap()); if let Some(next) = next { - if regex_is_match!(r"^/([a-z0-9._-]+/?)*$", next) { + if RE.is_match(next) { return Some(next); } } diff --git a/src/server/views_by_date.rs b/src/server/views_by_date.rs index 3ca54a4..50b7da1 100644 --- a/src/server/views_by_date.rs +++ b/src/server/views_by_date.rs @@ -91,8 +91,8 @@ sql_function! { } mod filter { - use diesel::sql_types::{Nullable, Timestamp}; use diesel::sql_function; + use diesel::sql_types::{Nullable, Timestamp}; sql_function! { fn year_of_timestamp(date: Nullable) -> Nullable