aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-09-04 21:16:27 -0400
committerRapptz <[email protected]>2015-09-04 21:16:27 -0400
commitb00ad4ad790fb4ae0878572f27ee01cf25226843 (patch)
treeb7c453cfa900b0c479b4628217e2fc05b73b1fab
parentAdd ability to delete channels. (diff)
downloaddiscord.py-b00ad4ad790fb4ae0878572f27ee01cf25226843.tar.xz
discord.py-b00ad4ad790fb4ae0878572f27ee01cf25226843.zip
Use kwargs if the number of arguments needed is too many.
-rw-r--r--discord/channel.py14
-rw-r--r--discord/client.py9
-rw-r--r--discord/message.py26
-rw-r--r--discord/server.py20
4 files changed, 39 insertions, 30 deletions
diff --git a/discord/channel.py b/discord/channel.py
index a7f04ad7..697872e3 100644
--- a/discord/channel.py
+++ b/discord/channel.py
@@ -52,14 +52,14 @@ class Channel(object):
values in the :attr:`Server.roles` attribute.
"""
- def __init__(self, name, server, id, position, type, permission_overwrites=None, **kwargs):
- self.name = name
- self.server = server
- self.id = id
+ def __init__(self, **kwargs):
+ self.name = kwargs.get('name')
+ self.server = kwargs.get('server')
+ self.id = kwargs.get('id')
self.is_private = False
- self.position = position
- self.type = type
- self.changed_roles = permission_overwrites if permission_overwrites is not None else []
+ self.position = kwargs.get('position')
+ self.type = kwargs.get('type')
+ self.changed_roles = kwargs.get('permission_overwrites', [])
class PrivateChannel(object):
"""Represents a Discord private channel.
diff --git a/discord/client.py b/discord/client.py
index 0ce41d07..58e7e31b 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -683,3 +683,12 @@ class Client(object):
url = '{0}/{1.id}'.format(endpoints.CHANNELS, channel)
requests.delete(url, headers=self.headers)
+
+ def leave_server(self, server):
+ """Leaves a :class:`Server`.
+
+ :param server: The :class:`Server` to leave.
+ """
+
+ url = '{0}/{1.id}'.format(endpoints.SERVERS, server)
+ requests.delete(url, headers=self.headers)
diff --git a/discord/message.py b/discord/message.py
index 2f529e09..5fe871cd 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -70,25 +70,25 @@ class Message(object):
An array of attachments given to a message.
"""
- def __init__(self, edited_timestamp, timestamp, tts, content, mention_everyone, mentions, embeds, attachments, id, channel, author, **kwargs):
+ def __init__(self, **kwargs):
# at the moment, the timestamps seem to be naive so they have no time zone and operate on UTC time.
# we can use this to our advantage to use strptime instead of a complicated parsing routine.
# example timestamp: 2015-08-21T12:03:45.782000+00:00
# sometimes the .%f modifier is missing
- self.edited_timestamp = None
- if edited_timestamp is not None:
+ self.edited_timestamp = kwargs.get('edited_timestamp')
+ if self.edited_timestamp is not None:
self.edited_timestamp = self._parse_time(edited_timestamp)
- self.timestamp = self._parse_time(timestamp)
- self.tts = tts
- self.content = content
- self.mention_everyone = mention_everyone
- self.embeds = embeds
- self.id = id
- self.channel = channel
- self.author = User(**author)
- self.mentions = [User(**mention) for mention in mentions]
- self.attachments = attachments
+ self.timestamp = self._parse_time(kwargs.get('timestamp'))
+ self.tts = kwargs.get('tts')
+ self.content = kwargs.get('content')
+ self.mention_everyone = kwargs.get('mention_everyone')
+ self.embeds = kwargs.get('embeds')
+ self.id = kwargs.get('id')
+ self.channel = kwargs.get('channel')
+ self.author = User(**kwargs.get('author', {}))
+ self.mentions = [User(**mention) for mention in kwargs.get('mentions', {})]
+ self.attachments = kwargs.get('attachments')
def _parse_time(self, time_string):
return datetime.datetime(*map(int, re.split(r'[^\d]', time_string.replace('+00:00', ''))))
diff --git a/discord/server.py b/discord/server.py
index 9eaf96fc..02243006 100644
--- a/discord/server.py
+++ b/discord/server.py
@@ -128,13 +128,13 @@ class Server(object):
The ID of the server's owner.
"""
- def __init__(self, name, roles, region, afk_timeout, afk_channel_id, members, icon, id, owner_id, **kwargs):
- self.name = name
- self.roles = roles
- self.region = region
- self.afk_timeout = afk_timeout
- self.afk_channel_id = afk_channel_id
- self.members = members
- self.icon = icon
- self.id = id
- self.owner_id = owner_id
+ def __init__(self, **kwargs):
+ self.name = kwargs.get('name')
+ self.roles = kwargs.get('roles')
+ self.region = kwargs.get('region')
+ self.afk_timeout = kwargs.get('afk_timeout')
+ self.afk_channel_id = kwargs.get('afk_channel_id')
+ self.members = kwargs.get('members')
+ self.icon = kwargs.get('icon')
+ self.id = kwargs.get('id')
+ self.owner_id = kwargs.get('owner_id')