fix: guard reply_to_text against DeletedReferencedMessage

Use getattr() for resolved.content since discord.py's
DeletedReferencedMessage lacks a content attribute. Adds test
for the deleted-message edge case.
This commit is contained in:
Teknium 2026-04-14 10:16:35 -07:00 committed by Teknium
parent 7636baf49c
commit 8ea9ceb44c
2 changed files with 14 additions and 1 deletions

View file

@ -2480,7 +2480,7 @@ class DiscordAdapter(BasePlatformAdapter):
if message.reference:
reply_to_id = str(message.reference.message_id)
if message.reference.resolved:
reply_to_text = message.reference.resolved.content or None
reply_to_text = getattr(message.reference.resolved, "content", None) or None
event = MessageEvent(
text=event_text,

View file

@ -369,3 +369,16 @@ class TestReplyToText:
event = reply_text_adapter.handle_message.await_args.args[0]
assert event.reply_to_message_id == "555"
assert event.reply_to_text is None
@pytest.mark.asyncio
async def test_reference_with_deleted_message(self, reply_text_adapter):
"""Deleted messages lack .content — getattr guard should return None."""
resolved_deleted = SimpleNamespace(id=555)
ref = SimpleNamespace(message_id=555, resolved=resolved_deleted)
message = _make_message(reference=ref)
await reply_text_adapter._handle_message(message)
event = reply_text_adapter.handle_message.await_args.args[0]
assert event.reply_to_message_id == "555"
assert event.reply_to_text is None