Browse Source

Simplify message search channel resolution logic

pull/10109/head
dolfies 2 years ago
parent
commit
40567879dc
  1. 10
      discord/abc.py
  2. 2
      discord/message.py

10
discord/abc.py

@ -319,13 +319,14 @@ async def _handle_message_search(
if offset < 0:
raise ValueError('offset must be greater than or equal to 0')
_channels = {c.id: c for c in channels} if channels else {}
# Guild channels must go through the guild search endpoint
_state = destination._state
endpoint = _state.http.search_guild
entity_id = None
channel = None
if isinstance(destination, Messageable):
channel = await destination._get_channel()
_channels[channel.id] = channel
if isinstance(channel, PrivateChannel):
endpoint = _state.http.search_channel
entity_id = channel.id
@ -334,13 +335,10 @@ async def _handle_message_search(
entity_id = getattr(channel.guild, 'id', getattr(channel, 'guild_id', None))
else:
entity_id = destination.id
if not entity_id:
raise ValueError('Could not resolve channel guild ID')
_channels = {c.id: c for c in channels} if channels else {}
if channel:
_channels[channel.id] = channel
def _resolve_channel(message: PartialMessagePayload, /):
_channel, _ = _state._get_guild_channel(message)
if isinstance(_channel, PartialMessageable) and _channel.id in _channels:

2
discord/message.py

@ -691,7 +691,7 @@ class PartialMessage(Hashable):
self.guild: Optional[Guild] = getattr(channel, 'guild', None)
self.guild_id: Optional[int] = self.guild.id if self.guild else None
if hasattr(channel, 'guild_id'):
if self.guild_id:
if self.guild_id is not None:
channel.guild_id = self.guild_id # type: ignore
else:
self.guild_id = channel.guild_id # type: ignore

Loading…
Cancel
Save