diff --git a/activities/models/post.py b/activities/models/post.py index 5ca5a1b..daf61e8 100644 --- a/activities/models/post.py +++ b/activities/models/post.py @@ -279,8 +279,12 @@ class Post(StatorModel): def replacer(match): precursor = match.group(1) handle = match.group(2).lower() + if "@" in handle: + short_handle = handle.split("@", 1)[0] + else: + short_handle = handle if handle in possible_matches: - return f'{precursor}@{handle}' + return f'{precursor}@{short_handle}' else: return match.group() diff --git a/tests/activities/models/test_post.py b/tests/activities/models/test_post.py index 00db61b..06d26ed 100644 --- a/tests/activities/models/test_post.py +++ b/tests/activities/models/test_post.py @@ -56,7 +56,7 @@ def test_linkify_mentions_remote(identity, remote_identity): post.mentions.add(identity) assert ( post.safe_content_remote() - == '

@test@example.com, welcome!

' + == '

@test, welcome!

' ) # Test that they don't get touched without a mention post = Post.objects.create( @@ -103,7 +103,7 @@ def test_linkify_mentions_local(identity, remote_identity): post.mentions.add(identity) assert ( post.safe_content_local() - == '

@test@example.com, welcome!

' + == '

@test, welcome!

' ) # Test a full username (remote) with no

post = Post.objects.create( @@ -112,10 +112,7 @@ def test_linkify_mentions_local(identity, remote_identity): local=True, ) post.mentions.add(remote_identity) - assert ( - post.safe_content_local() - == '@test@remote.test hello!' - ) + assert post.safe_content_local() == '@test hello!' # Test that they don't get touched without a mention post = Post.objects.create( content="

@test@example.com, welcome!

",