diff --git a/crates/api_common/src/utils.rs b/crates/api_common/src/utils.rs index 3cd7902e1..d2118dcdf 100644 --- a/crates/api_common/src/utils.rs +++ b/crates/api_common/src/utils.rs @@ -537,23 +537,15 @@ pub async fn get_url_blocklist(context: &LemmyContext) -> LemmyResult let urls = LocalSiteUrlBlocklist::get_all(&mut context.pool()).await?; let regexes = urls.iter().map(|url| { - let url = &url.url; - let parsed = Url::parse(url).expect("Coundln't parse URL."); - if url.ends_with('/') { - format!( - "({}://)?{}{}?", - parsed.scheme(), - escape(parsed.domain().expect("No domain.")), - escape(parsed.path()) - ) - } else { - format!( - "({}://)?{}{}", - parsed.scheme(), - escape(parsed.domain().expect("No domain.")), - escape(parsed.path()) - ) - } + // The scheme is removed in the saving, + // so fake it here to build the url. + let url = &format!("https://{}", url.url); + let parsed = Url::parse(url).expect("Couldn't parse URL."); + format!( + "{}{}", + escape(parsed.host_str().expect("No domain.")), + escape(parsed.path()) + ) }); let set = RegexSet::new(regexes)?; diff --git a/crates/utils/src/utils/validation.rs b/crates/utils/src/utils/validation.rs index 786b01006..96b12c06b 100644 --- a/crates/utils/src/utils/validation.rs +++ b/crates/utils/src/utils/validation.rs @@ -624,12 +624,12 @@ mod tests { "example.com".to_string(), "http://example.com".to_string(), "https://example.com".to_string(), - "https://example.blog/test?q=test2&q2=test3#test4".to_string(), + "https://example.com/test?q=test2&q2=test3#test4".to_string(), ]) .unwrap(), &vec![ "example.com/".to_string(), - "example.blog/test?q=test2&q2=test3#test4".to_string() + "example.com/test?q=test2&q2=test3#test4".to_string() ], );