aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2016-07-15 21:45:23 -0400
committerRapptz <[email protected]>2016-07-15 21:45:23 -0400
commit18bdd3e7dd230e7fb347404bd39e2ff871bbbe56 (patch)
tree5a01b8a5b149f87ef346bcc43b8347d76a5d49a5
parentHandle private channel CHANNEL_CREATE better. (diff)
downloaddiscord.py-18bdd3e7dd230e7fb347404bd39e2ff871bbbe56.tar.xz
discord.py-18bdd3e7dd230e7fb347404bd39e2ff871bbbe56.zip
Make PrivateChannel.__str__ more useful for groups.
Also demote is_private to a property instead of a slot.
-rw-r--r--discord/channel.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/discord/channel.py b/discord/channel.py
index 2c1c3495..b6f491ce 100644
--- a/discord/channel.py
+++ b/discord/channel.py
@@ -294,7 +294,7 @@ class PrivateChannel(Hashable):
+-----------+-------------------------------------------------+
| hash(x) | Returns the channel's hash. |
+-----------+-------------------------------------------------+
- | str(x) | Returns the string "Direct Message with <User>" |
+ | str(x) | Returns a string representation of the channel |
+-----------+-------------------------------------------------+
Attributes
@@ -320,13 +320,12 @@ class PrivateChannel(Hashable):
:attr:`ChannelType.group` then this is always ``None``.
"""
- __slots__ = ['id', 'is_private', 'recipients', 'type', 'owner', 'icon', 'name', 'me']
+ __slots__ = ['id', 'recipients', 'type', 'owner', 'icon', 'name', 'me']
def __init__(self, me, **kwargs):
self.recipients = [User(**u) for u in kwargs['recipients']]
self.id = kwargs['id']
self.me = me
- self.is_private = True
self.type = ChannelType(kwargs['type'])
self._update_group(**kwargs)
@@ -336,8 +335,21 @@ class PrivateChannel(Hashable):
self.name = kwargs.get('name')
self.owner = utils.find(lambda u: u.id == owner_id, self.recipients)
+ @property
+ def is_private(self):
+ return True
+
def __str__(self):
- return 'Direct Message with {0.name}'.format(self.user)
+ if self.type is ChannelType.private:
+ return 'Direct Message with {0.name}'.format(self.user)
+
+ if self.name:
+ return self.name
+
+ if len(self.recipients) == 0:
+ return 'Unnamed'
+
+ return ', '.join(map(lambda x: x.name, self.recipients))
@property
def user(self):