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 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 {

View file

@ -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::<Uri>().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();

View file

@ -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::*;