Revise title regex and don't escape sed regex

This commit is contained in:
Yash Karandikar 2022-07-30 15:38:44 -05:00 committed by lemonsh
parent f2f0072511
commit ee25b6f970
3 changed files with 3 additions and 11 deletions

View file

@ -1,6 +1,5 @@
use crate::bot::{Context, Trigger}; use crate::bot::{Context, Trigger};
use async_trait::async_trait; use async_trait::async_trait;
use fancy_regex::escape;
use fancy_regex::Captures; use fancy_regex::Captures;
use regex::RegexBuilder; use regex::RegexBuilder;
@ -33,11 +32,9 @@ impl Trigger for Sed {
.map(|s| (s.contains('g'), s.contains('i'))) .map(|s| (s.contains('g'), s.contains('i')))
.unwrap_or_default(); .unwrap_or_default();
let escaped = escape(find.as_str()); let re = RegexBuilder::new(find.as_str())
let re = RegexBuilder::new(&escaped)
.case_insensitive(ignore_case) .case_insensitive(ignore_case)
.build() .build()?;
.unwrap(); // Of course it's valid, we just escaped special chars
let result = if global { let result = if global {
re.replace_all(&message, replace.as_str()) re.replace_all(&message, replace.as_str())
} else { } else {

View file

@ -3,7 +3,6 @@ use async_trait::async_trait;
use fancy_regex::{Captures, Regex}; use fancy_regex::{Captures, Regex};
use htmlescape::decode_html; use htmlescape::decode_html;
use hyper::header::HeaderValue; use hyper::header::HeaderValue;
use hyper::Uri;
use reqwest::Client; use reqwest::Client;
pub struct Title { pub struct Title {
@ -30,10 +29,6 @@ impl Trigger for Title {
let url = captures.get(0).unwrap().as_str(); let url = captures.get(0).unwrap().as_str();
tracing::debug!("url: {}", url); tracing::debug!("url: {}", url);
if url.parse::<Uri>().is_err() {
return Ok("\x039[Title]\x0311 Invalid URL".into());
}
let request = self.http.get(url).build()?; let request = self.http.get(url).build()?;
let response = self.http.execute(request).await?; let response = self.http.execute(request).await?;
let headers = response.headers(); let headers = response.headers();

View file

@ -147,7 +147,7 @@ async fn main() -> anyhow::Result<()> {
} else { } else {
tracing::warn!("Spotify module is disabled, because the config is missing"); 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")] #[cfg(feature = "debug")]
{ {
use commands::debug::*; use commands::debug::*;