fix repeated group pings

master
Aevann 2023-04-25 08:59:20 +02:00
parent 92bf3f7134
commit b6d4ecfb40
1 changed files with 10 additions and 6 deletions

View File

@ -377,14 +377,18 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_emojis=
sanitized = mention_regex.sub(replacer, sanitized) sanitized = mention_regex.sub(replacer, sanitized)
if FEATURES['PING_GROUPS']: if FEATURES['PING_GROUPS']:
for i in group_mention_regex.finditer(sanitized): def group_replacer(m):
name = i.group(1).lower() name = m.group(1).lower()
if name == 'everyone': if name == 'everyone':
sanitized = group_mention_regex.sub(r'<a href="/users">!\1</a>', sanitized) return f'<a href="/users">!{name}</a>'
elif g.db.get(Group, name):
return f'<a href="/!{name}">!{name}</a>'
else: else:
existing = g.db.get(Group, name) return m.group(0)
if existing:
sanitized = sanitized.replace(i.group(0), f'<a href="/!{name}">!{name}</a>', 1) sanitized = group_mention_regex.sub(group_replacer, sanitized)
soup = BeautifulSoup(sanitized, 'lxml') soup = BeautifulSoup(sanitized, 'lxml')