Compare commits

..

2 commits

Author SHA1 Message Date
b2d23b7c4c
fix(web): multiple mentions should not nest 2024-07-04 04:42:34 +02:00
5c97b40ea6
fix(web): dont recreate regex every time 2024-07-04 04:42:20 +02:00
2 changed files with 6 additions and 3 deletions

View file

@ -3,6 +3,10 @@ use crate::{prelude::*, DEFAULT_AVATAR_URL};
use apb::{field::OptionalString, Activity, ActivityMut, Actor, Base, Object, ObjectMut}; use apb::{field::OptionalString, Activity, ActivityMut, Actor, Base, Object, ObjectMut};
lazy_static::lazy_static! {
static ref REGEX: regex::Regex = regex::Regex::new(r":\w+:").expect("failed compiling custom emoji regex");
}
#[component] #[component]
pub fn ActorStrip(object: crate::Object) -> impl IntoView { pub fn ActorStrip(object: crate::Object) -> impl IntoView {
let actor_id = object.id().unwrap_or_default().to_string(); let actor_id = object.id().unwrap_or_default().to_string();
@ -51,8 +55,7 @@ pub fn ActorBanner(object: crate::Object) -> impl IntoView {
#[component] #[component]
fn DisplayName(mut name: String) -> impl IntoView { fn DisplayName(mut name: String) -> impl IntoView {
let custom_emoji_regex = regex::Regex::new(r":\w+:").expect("failed compiling regex pattern"); for m in REGEX.find_iter(&name.clone()) {
for m in custom_emoji_regex.find_iter(&name.clone()) {
// TODO this is a clear unmitigated unsanitized html injection ahahahahaha but accounts // TODO this is a clear unmitigated unsanitized html injection ahahahahaha but accounts
// with many custom emojis in their names mess with my frontend and i dont want to // with many custom emojis in their names mess with my frontend and i dont want to
// deal with it rn // deal with it rn

View file

@ -7,7 +7,7 @@ use crate::prelude::*;
use apb::{field::OptionalString, target::Addressed, ActivityMut, Base, Collection, CollectionMut, Object, ObjectMut}; use apb::{field::OptionalString, target::Addressed, ActivityMut, Base, Collection, CollectionMut, Object, ObjectMut};
lazy_static::lazy_static! { lazy_static::lazy_static! {
static ref REGEX: Regex = regex::Regex::new("<a href=\"(.+)\" class=\"u-url mention\">@(\\w+)(@\\w+|)</a>").expect("failed compiling @ regex"); static ref REGEX: Regex = regex::Regex::new("<a href=\"([-a-zA-Z0-9()@:%_\\+.~#?&\\/=]+)\" class=\"u-url mention\">@(\\w+)(@\\w+|)</a>").expect("failed compiling @ regex");
} }
#[component] #[component]