message_report: Use get_message_link_syntax.

This updates the message report module to use the
`get_message_link_syntax` function.
This commit is contained in:
PieterCK
2025-07-04 10:31:41 +07:00
committed by Tim Abbott
parent ce4f36200e
commit f4432f99df
2 changed files with 36 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ from zerver.lib.display_recipient import get_display_recipient
from zerver.lib.markdown.fenced_code import get_unused_fence
from zerver.lib.mention import silent_mention_syntax_for_user
from zerver.lib.message import is_1_to_1_message, truncate_content
from zerver.lib.topic_link_util import get_message_link_syntax
from zerver.models import Message, Realm, UserProfile
from zerver.models.recipients import Recipient
from zerver.models.users import get_system_bot
@@ -59,8 +60,14 @@ def send_message_report(
else:
assert reported_message.is_stream_message() is True
topic_name = reported_message.topic_name()
channel = reported_message.recipient.label()
channel_message_link = f"#**{channel}>{topic_name}@{reported_message.id}**"
channel_id = reported_message.recipient.type_id
channel_name = reported_message.recipient.label()
channel_message_link = get_message_link_syntax(
channel_id,
channel_name,
topic_name,
reported_message.id,
)
report_header = _(
"{reporting_user_mention} reported {channel_message_link} sent by {reported_user_mention}."
).format(

View File

@@ -8,6 +8,7 @@ from zerver.lib.message import truncate_content
from zerver.lib.message_report import MAX_REPORT_MESSAGE_SNIPPET_LENGTH
from zerver.lib.test_classes import ZulipTestCase
from zerver.lib.topic import DB_TOPIC_NAME
from zerver.lib.topic_link_util import get_message_link_syntax
from zerver.models import UserProfile
from zerver.models.messages import Message
from zerver.models.recipients import get_or_create_direct_message_group
@@ -140,6 +141,32 @@ class ReportMessageTest(ZulipTestCase):
result = self.report_message(reporting_user, private_message.id, report_type, description)
self.assert_json_error(result, msg="Invalid message(s)")
# Check object IDs in message link syntax is accurate.
# This channel name will generate a narrow URL for its link syntax.
obscure_channel = self.make_stream("Sw*den", self.realm)
self.subscribe(self.reported_user, obscure_channel.name, True)
message_id = self.send_stream_message(
self.reported_user,
obscure_channel.name,
topic_name="",
content="foo baz",
)
result = self.report_message(
reporting_user,
message_id,
report_type,
description,
)
expected_message_link_syntax = get_message_link_syntax(
obscure_channel.id,
obscure_channel.name,
"",
message_id,
)
reports = list(self.get_submitted_moderation_requests())
self.assertIn(expected_message_link_syntax, reports[-1]["content"])
def test_dm_report(self) -> None:
# Send a DM to be reported
reported_dm_id = self.send_personal_message(