From 76fd1342f3d055c860762e91000f0414b017c648 Mon Sep 17 00:00:00 2001 From: TLSM Date: Fri, 20 May 2022 17:04:36 -0400 Subject: [PATCH] Fix @mention replacement. Comments of the style e.g. "@TLSM / @TLSM2" would mistakenly be `sanitize`d to have identical links only on "@TLSM", the latter instance having a dangling 2 on the end. It seems this is purely an issue with text formatting; alerts.py @ NOTIF_USERS had no such issues. The root cause appears to be partly an optimization and partly the use of str.replace without a count limit. --- files/helpers/sanitize.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index 5c11581d6..fba6aa992 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -173,15 +173,11 @@ def sanitize(sanitized, alert=False, comment=False, edit=False): sanitized = sub_regex.sub(r'\1/\2', sanitized) - captured = [] for i in mention_regex.finditer(sanitized): - if i.group(0) in captured: continue - captured.append(i.group(0)) - u = get_user(i.group(2), graceful=True) if u and (not (g.v and g.v.any_block_exists(u)) or g.v.admin_level > 1): - sanitized = sanitized.replace(i.group(0), f'''{i.group(1)}@{u.username}''') + sanitized = sanitized.replace(i.group(0), f'''{i.group(1)}@{u.username}''', 1) sanitized = imgur_regex.sub(r'\1_d.webp?maxwidth=9999&fidelity=high', sanitized)