From fb342cfb5488d3e6d1c0c13d5454b6fb3c2a6dbf Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Mon, 28 Nov 2022 22:34:14 -0700 Subject: Fix hashtagging of HTML entities --- activities/models/hashtag.py | 6 +++--- tests/core/test_html.py | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/activities/models/hashtag.py b/activities/models/hashtag.py index 7085b15..9cfb21d 100644 --- a/activities/models/hashtag.py +++ b/activities/models/hashtag.py @@ -123,7 +123,7 @@ class Hashtag(StatorModel): delete = "{edit}delete/" timeline = "/tags/{self.hashtag}/" - hashtag_regex = re.compile(r"((?:\B#)([a-zA-Z0-9(_)]{1,}\b))") + hashtag_regex = re.compile(r"\B#([a-zA-Z0-9(_)]+\b)(?!;)") def save(self, *args, **kwargs): self.hashtag = self.hashtag.lstrip("#") @@ -182,7 +182,7 @@ class Hashtag(StatorModel): @classmethod def linkify_hashtags(cls, content) -> str: def replacer(match): - hashtag = match.group() - return f'{hashtag}' + hashtag = match.group(1) + return f'#{hashtag}' return mark_safe(Hashtag.hashtag_regex.sub(replacer, content)) diff --git a/tests/core/test_html.py b/tests/core/test_html.py index 012a0ce..d4c74dc 100644 --- a/tests/core/test_html.py +++ b/tests/core/test_html.py @@ -1,4 +1,4 @@ -from core.html import html_to_plaintext +from core.html import html_to_plaintext, sanitize_post def test_html_to_plaintext(): @@ -13,3 +13,9 @@ def test_html_to_plaintext(): html_to_plaintext("
Hi!
\n\nHow are
you?
today
") == "Hi!\n\nHow are\n you?\n\ntoday" ) + + +def test_sanitize_post(): + + assert sanitize_post("Hello!
") == "Hello!
" + assert sanitize_post("It's great
") == "It's great
" -- cgit v1.2.3