Move message creation to a factory method inside ConnectionState.

This commit is contained in:
Rapptz
2017-01-03 08:41:44 -05:00
parent 5e6bfecb07
commit 98b981848d
14 changed files with 94 additions and 104 deletions

View File

@ -27,9 +27,7 @@ DEALINGS IN THE SOFTWARE.
import copy
import asyncio
import discord.utils
from . import utils
from .role import Role
from .member import Member, VoiceState
from .emoji import Emoji
@ -230,7 +228,7 @@ class Guild(Hashable):
for mdata in guild.get('members', []):
roles = [self.default_role]
for role_id in mdata['roles']:
role = discord.utils.find(lambda r: r.id == role_id, self.roles)
role = utils.find(lambda r: r.id == role_id, self.roles)
if role is not None:
roles.append(role)
@ -241,8 +239,8 @@ class Guild(Hashable):
self._sync(guild)
self.large = None if member_count is None else self._member_count >= 250
self.owner_id = discord.utils._get_as_snowflake(guild, 'owner_id')
self.afk_channel = self.get_channel(discord.utils._get_as_snowflake(guild, 'afk_channel_id'))
self.owner_id = utils._get_as_snowflake(guild, 'owner_id')
self.afk_channel = self.get_channel(utils._get_as_snowflake(guild, 'afk_channel_id'))
for obj in guild.get('voice_states', []):
self._update_voice_state(obj, int(obj['channel_id']))
@ -299,15 +297,15 @@ class Guild(Hashable):
"""Returns a :class:`Member` with the given ID. If not found, returns None."""
return self._members.get(user_id)
@discord.utils.cached_slot_property('_default_role')
@utils.cached_slot_property('_default_role')
def default_role(self):
"""Gets the @everyone role that all members have by default."""
return discord.utils.find(lambda r: r.is_everyone, self.roles)
return utils.find(lambda r: r.is_everyone, self.roles)
@discord.utils.cached_slot_property('_default_channel')
@utils.cached_slot_property('_default_channel')
def default_channel(self):
"""Gets the default :class:`Channel` for the guild."""
return discord.utils.find(lambda c: c.is_default, self.channels)
return utils.find(lambda c: c.is_default, self.channels)
@property
def owner(self):
@ -336,7 +334,7 @@ class Guild(Hashable):
@property
def created_at(self):
"""Returns the guild's creation time in UTC."""
return discord.utils.snowflake_time(self.id)
return utils.snowflake_time(self.id)
@property
def role_hierarchy(self):
@ -384,14 +382,14 @@ class Guild(Hashable):
# do the actual lookup and return if found
# if it isn't found then we'll do a full name lookup below.
result = discord.utils.get(members, name=name[:-5], discriminator=potential_discriminator)
result = utils.get(members, name=name[:-5], discriminator=potential_discriminator)
if result is not None:
return result
def pred(m):
return m.nick == name or m.name == name
return discord.utils.find(pred, members)
return utils.find(pred, members)
@asyncio.coroutine
@ -475,7 +473,7 @@ class Guild(Hashable):
icon = self.icon
else:
if icon_bytes is not None:
icon = discord.utils._bytes_to_base64_data(icon_bytes)
icon = utils._bytes_to_base64_data(icon_bytes)
else:
icon = None
@ -665,7 +663,7 @@ class Guild(Hashable):
An error occurred creating an emoji.
"""
img = discord.utils._bytes_to_base64_data(image)
img = utils._bytes_to_base64_data(image)
data = yield from self._state.http.create_custom_emoji(self.id, name, img)
return self._state.store_emoji(self, data)