diff --git a/src/commands/sed.rs b/src/commands/sed.rs index 943d6cc..8442101 100644 --- a/src/commands/sed.rs +++ b/src/commands/sed.rs @@ -1,6 +1,5 @@ use crate::bot::{Context, Trigger}; use async_trait::async_trait; -use fancy_regex::escape; use fancy_regex::Captures; use regex::RegexBuilder; @@ -33,11 +32,9 @@ impl Trigger for Sed { .map(|s| (s.contains('g'), s.contains('i'))) .unwrap_or_default(); - let escaped = escape(find.as_str()); - let re = RegexBuilder::new(&escaped) + let re = RegexBuilder::new(find.as_str()) .case_insensitive(ignore_case) - .build() - .unwrap(); // Of course it's valid, we just escaped special chars + .build()?; let result = if global { re.replace_all(&message, replace.as_str()) } else { diff --git a/src/commands/title.rs b/src/commands/title.rs index 39aa5a4..6290f8d 100644 --- a/src/commands/title.rs +++ b/src/commands/title.rs @@ -3,7 +3,6 @@ use async_trait::async_trait; use fancy_regex::{Captures, Regex}; use htmlescape::decode_html; use hyper::header::HeaderValue; -use hyper::Uri; use reqwest::Client; pub struct Title { @@ -30,10 +29,6 @@ impl Trigger for Title { let url = captures.get(0).unwrap().as_str(); tracing::debug!("url: {}", url); - if url.parse::().is_err() { - return Ok("\x039[Title]\x0311 Invalid URL".into()); - } - let request = self.http.get(url).build()?; let response = self.http.execute(request).await?; let headers = response.headers(); diff --git a/src/main.rs b/src/main.rs index 19552f1..ed53ebd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -147,7 +147,7 @@ async fn main() -> anyhow::Result<()> { } else { tracing::warn!("Spotify module is disabled, because the config is missing"); } - bot.add_trigger(Regex::new(r"https?://[^\s/$.?#].\S*")?, Title::new()?); + bot.add_trigger(Regex::new(r"https?://[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b[-a-zA-Z0-9()@:%_\+.~#?&//=]*")?, Title::new()?); #[cfg(feature = "debug")] { use commands::debug::*;