Skip to content

Commit 9bf78ad

Browse files
committed
separate properties
1 parent f46ef3e commit 9bf78ad

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

changes/1877.feature.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
Add `make_link()` function to `MessageReference` class.
1+
- Add `message_link` property to `MessageReference`
2+
- Add `channel_link` property to `MessageReference`

hikari/messages.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -309,17 +309,27 @@ class MessageReference:
309309
a guild.
310310
"""
311311

312-
def make_link(self) -> str:
313-
"""Generate a jump link to the referenced message or channel (in case for follow add messages).
312+
@property
313+
def message_link(self) -> typing.Optional[str]:
314+
"""Generate a jump link to the referenced message.
314315
315-
Returns
316-
-------
317-
str
318-
The jump link to the message reference target.
316+
This will be [`None`][] for channel follow add messages. This may
317+
point to a deleted message.
318+
"""
319+
if self.id is None:
320+
return None
321+
322+
guild_id_str = "@me" if self.guild_id is None else self.guild_id
323+
return f"{urls.BASE_URL}/channels/{guild_id_str}/{self.channel_id}/{self.id}"
324+
325+
@property
326+
def channel_link(self) -> str:
327+
"""Generate a jump link to the channel the referenced message was sent in.
328+
329+
This will always be a valid link.
319330
"""
320331
guild_id_str = "@me" if self.guild_id is None else self.guild_id
321-
message_id_str = "" if self.id is None else f"/{self.id}"
322-
return f"{urls.BASE_URL}/channels/{guild_id_str}/{self.channel_id}{message_id_str}"
332+
return f"{urls.BASE_URL}/channels/{guild_id_str}/{self.channel_id}"
323333

324334

325335
@attrs_extensions.with_copy

tests/hikari/test_messages.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,18 @@ def message_reference():
143143

144144
class TestMessageReference:
145145
def test_make_link_when_guild_is_not_none(self, message_reference):
146-
assert message_reference.make_link() == "https://discord.com/channels/123/456/789"
146+
assert message_reference.message_link == "https://discord.com/channels/123/456/789"
147+
assert message_reference.channel_link == "https://discord.com/channels/123/456"
147148

148149
def test_make_link_when_guild_is_none(self, message_reference):
149150
message_reference.guild_id = None
150-
assert message_reference.make_link() == "https://discord.com/channels/@me/456/789"
151+
assert message_reference.message_link == "https://discord.com/channels/@me/456/789"
152+
assert message_reference.channel_link == "https://discord.com/channels/@me/456"
151153

152154
def test_make_link_when_id_is_none(self, message_reference):
153155
message_reference.id = None
154-
assert message_reference.make_link() == "https://discord.com/channels/123/456"
156+
assert message_reference.message_link is None
157+
assert message_reference.channel_link == "https://discord.com/channels/123/456"
155158

156159

157160
@pytest.mark.asyncio

0 commit comments

Comments
 (0)