Separate colour tuple into its own class.

Also enumerate all the constant colours that Discord currently
supports.
This commit is contained in:
Rapptz
2015-10-16 07:13:24 -04:00
parent ab2512785b
commit 411b477a02
5 changed files with 220 additions and 53 deletions

View File

@ -25,59 +25,8 @@ DEALINGS IN THE SOFTWARE.
"""
from .user import User
from .permissions import Permissions
from .utils import parse_time
class Role(object):
"""Represents a Discord role in a :class:`Server`.
Instance attributes:
.. attribute:: id
The ID for the role.
.. attribute:: name
The name of the role.
.. attribute:: permissions
A :class:`Permissions` that represents the role's permissions.
.. attribute:: color
colour
A tuple of (r, g, b) associated with the role colour.
.. attribute:: hoist
A boolean representing if the role will be displayed separately from other members.
.. attribute:: position
The position of the role.
"""
def __init__(self, **kwargs):
self.update(**kwargs)
def update(self, **kwargs):
self.id = kwargs.get('id')
self.name = kwargs.get('name')
self.permissions = Permissions(kwargs.get('permissions', 0))
self.position = kwargs.get('position', -1)
self.colour = kwargs.get('color', 0)
self.hoist = kwargs.get('hoist', False)
self._colour_to_tuple()
def _colour_to_tuple(self):
# first we turn this into a hex string
# the reason why we're using a hex string rather than just use bitwise
# ops is because we don't want to care too much about endianness.
hex_str = format(self.colour, '06x')
red = int(hex_str[0] + hex_str[1], base=16)
green = int(hex_str[2] + hex_str[3], base=16)
blue = int(hex_str[4] + hex_str[5], base=16)
self.colour = (red, green, blue)
self.color = self.colour
class Member(User):
"""Represents a Discord member to a :class:`Server`.