Move message creation to a factory method inside ConnectionState.
This commit is contained in:
@ -31,14 +31,12 @@ import asyncio
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
from .message import Message
|
||||
from .iterators import LogsFromIterator
|
||||
from .context_managers import Typing
|
||||
from .errors import ClientException, NoMoreMessages, InvalidArgument
|
||||
from .permissions import PermissionOverwrite, Permissions
|
||||
from .role import Role
|
||||
|
||||
import discord.utils
|
||||
from . import utils, compat
|
||||
|
||||
class _Undefined:
|
||||
def __repr__(self):
|
||||
@ -178,7 +176,7 @@ class GuildChannel:
|
||||
their default values in the :attr:`Guild.roles` attribute."""
|
||||
ret = []
|
||||
for overwrite in filter(lambda o: o.type == 'role', self._overwrites):
|
||||
role = discord.utils.get(self.guild.roles, id=overwrite.id)
|
||||
role = utils.get(self.guild.roles, id=overwrite.id)
|
||||
if role is None:
|
||||
continue
|
||||
|
||||
@ -200,7 +198,7 @@ class GuildChannel:
|
||||
@property
|
||||
def created_at(self):
|
||||
"""Returns the channel's creation time in UTC."""
|
||||
return discord.utils.snowflake_time(self.id)
|
||||
return utils.snowflake_time(self.id)
|
||||
|
||||
def overwrites_for(self, obj):
|
||||
"""Returns the channel-specific overwrites for a member or a role.
|
||||
@ -253,7 +251,7 @@ class GuildChannel:
|
||||
|
||||
if ow.type == 'role':
|
||||
# accidentally quadratic
|
||||
target = discord.utils.find(lambda r: r.id == ow.id, self.guild.roles)
|
||||
target = utils.find(lambda r: r.id == ow.id, self.guild.roles)
|
||||
elif ow.type == 'member':
|
||||
target = self.guild.get_member(ow.id)
|
||||
|
||||
@ -409,7 +407,7 @@ class GuildChannel:
|
||||
|
||||
Using :class:`PermissionOverwrite` ::
|
||||
|
||||
overwrite = discord.PermissionOverwrite()
|
||||
overwrite = PermissionOverwrite()
|
||||
overwrite.send_messages = False
|
||||
overwrite.read_messages = True
|
||||
await channel.set_permissions(member, overwrite=overwrite)
|
||||
@ -557,7 +555,7 @@ class Messageable(metaclass=abc.ABCMeta):
|
||||
else:
|
||||
data = yield from state.http.send_message(channel.id, content, guild_id=guild_id, tts=tts, embed=embed)
|
||||
|
||||
ret = Message(channel=channel, state=state, data=data)
|
||||
ret = state.create_message(channel=channel, data=data)
|
||||
if delete_after is not None:
|
||||
@asyncio.coroutine
|
||||
def delete():
|
||||
@ -566,7 +564,7 @@ class Messageable(metaclass=abc.ABCMeta):
|
||||
yield from ret.delete()
|
||||
except:
|
||||
pass
|
||||
discord.compat.create_task(delete(), loop=state.loop)
|
||||
compat.create_task(delete(), loop=state.loop)
|
||||
return ret
|
||||
|
||||
@asyncio.coroutine
|
||||
@ -630,7 +628,7 @@ class Messageable(metaclass=abc.ABCMeta):
|
||||
|
||||
channel = self._get_channel()
|
||||
data = yield from self._state.http.get_message(channel.id, id)
|
||||
return Message(channel=channel, state=self._state, data=data)
|
||||
return state.create_message(channel=channel, data=data)
|
||||
|
||||
@asyncio.coroutine
|
||||
def delete_messages(self, messages):
|
||||
@ -682,7 +680,7 @@ class Messageable(metaclass=abc.ABCMeta):
|
||||
channel = self._get_channel()
|
||||
state = self._state
|
||||
data = yield from state.http.pins_from(channel.id)
|
||||
return [Message(channel=channel, state=state, data=m) for m in data]
|
||||
return [state.create_message(channel=channel, data=m) for m in data]
|
||||
|
||||
def history(self, *, limit=100, before=None, after=None, around=None, reverse=None):
|
||||
"""Return an async iterator that enables receiving the destination's message history.
|
||||
|
Reference in New Issue
Block a user