2438 Commits

Author SHA1 Message Date
Rapptz
1acf478fb7 Make Permissions an iterable class. 2016-05-01 07:22:45 -04:00
Rapptz
fdaa4299a3 [commands] Fix when_mentioned when handling nicknames. 2016-05-01 07:06:19 -04:00
Milo Mirate
21c88cf727 Make Permissions partially-ordered.
Specifically:

* P1 <= P2 iff P1 expresses a subset of the permissions expressed by P2.

* P1 < P2 iff P1 <= P2 and P1 != P2

* vice versa for P1 >= P2 and P1 > P2
2016-04-30 23:00:22 -04:00
Khazhismel Kumykov
7bae6dc5bc Fix changing own nickname without manage_nicknames
Use @me/nick rather than id when changing own nickname - this only
requires change_nicknames rather than manage.
2016-04-30 20:34:02 -04:00
Rapptz
5e8c79bf76 Attempt to consistently sort of all Member.roles 2016-04-29 22:44:25 -04:00
Rapptz
47cccba946 Remove setting read-only __doc__ in Member overrides. 2016-04-29 22:30:51 -04:00
Rapptz
ebaf74e784 Sort member.roles by ID but keep the default role in index 0.
This should make the events checking if `before` and `after` roles
are equivalent more sane for users.
2016-04-29 22:29:56 -04:00
Rapptz
e2bfa90eef Add User.mentioned_in helper to check if a message mentions you. 2016-04-29 20:11:13 -04:00
Rapptz
3758c0aa83 Member.mention now uses nickname hint if needed. 2016-04-29 19:29:48 -04:00
Rapptz
196e9463f5 Add Role.mentionable attribute. 2016-04-29 19:29:29 -04:00
Khazhismel Kumykov
29b01f20ba Fix Member.display_name returning None
If Member.nick was None, getattr would happily return None, not the
default value.
2016-04-29 15:13:15 -04:00
Rapptz
7f09acf871 [commands] Allow role mentions to work with discord.Role params.
This also fixes the Member regex to support the new <@!user_id> syntax
and allows colours to have a leading # before the number.
2016-04-29 08:45:12 -04:00
Rapptz
e112536ce2 Simplify User.display_name a bit. 2016-04-29 08:27:19 -04:00
Rapptz
85806ef1d6 Handle nicknames in Server.get_member_named 2016-04-29 08:20:16 -04:00
Rapptz
79f6554289 Add Message.role_mentions and handle them in Message.clean_content 2016-04-29 07:54:49 -04:00
Rapptz
abb955fdaa Add Role.mention property 2016-04-29 07:24:32 -04:00
Rapptz
07adb1d5e9 Add ability to change nicknames via Client.change_nickname 2016-04-29 07:18:01 -04:00
Rapptz
133e8d3a44 Add support for server specific nicknames. 2016-04-29 06:39:21 -04:00
Rapptz
cc78cfedb6 Add permissions for changing or managing nicknames. 2016-04-29 06:23:09 -04:00
Rapptz
c1b5a52823 Refactor voice websocket into gateway.py 2016-04-27 18:36:24 -04:00
Rapptz
1c623ccf11 Begin working on gateway v4 support.
Bump websockets requirement to v3.1

Should be squashed...
2016-04-27 18:36:13 -04:00
Rapptz
fda0c8cea0 Add compatibility layer for run_coroutine_threadsafe.
This is a breaking change, since discord.utils.create_task is moved
to discord.compat.create_task.
2016-04-25 20:52:16 -04:00
Rapptz
e0ca746ad4 [commands] Make sure that mentions are the entire string. 2016-04-23 02:13:34 -04:00
Rapptz
54e9be7aed Message.clean_content now takes into consideration @here mentions. 2016-04-23 02:13:33 -04:00
Daniel
5a2b8e2ce6 Properly close session if client failed to start
`keep_alive` was not defined until it was created in `received_message`, `ws` is `None` until its actually connected, which doesn't always happen.  If an error happens before things start up properly, the client should now clean its objects up (fixes `unclosed client session` warning).
2016-04-22 22:40:25 -04:00
cookie
bd5effeb68 Add optional redirect_uri parameter to utils.oauth_url 2016-04-18 00:47:55 -04:00
Rapptz
8d7dd79673 Fix deadlock issue when joining large guilds. 2016-04-15 23:27:23 -04:00
Khazhismel Kumykov
a2a5dc5997 Add optional server parameter to utils.oauth_url 2016-04-15 21:04:33 -04:00
Rapptz
03862a7145 Add a None check when setting status in Client.change_status. 2016-04-14 20:38:13 -04:00
Rapptz
7adf761a35 Retry if send_message or edit_message encounter a 502. 2016-04-14 13:16:27 -04:00
Rapptz
054c9c7109 [commands] CommandError derived exceptions in checks don't crash help. 2016-04-13 14:25:45 -04:00
Rapptz
7eb9a7dfdc Handle bot tag updates in GUILD_MEMBER_UPDATE. 2016-04-12 18:19:02 -04:00
Rapptz
53bc9a3007 Yield from parser coroutine instead of making it a task.
This should give us a bit better sequential message processing.
2016-04-12 18:18:03 -04:00
Rapptz
03041bdb0a Add Channel.overwrites_for function to get allow/deny pairs. 2016-04-12 13:10:43 -04:00
Rapptz
7023b353f6 User JSON object has 'username' keys not 'name'. 2016-04-11 14:39:04 -04:00
Rapptz
5c407df2b7 Fix Client.login documentation to showcase email/password login. 2016-04-11 14:30:44 -04:00
Rapptz
28b3d375e9 Check the right status code for improper token being passed. 2016-04-11 14:25:20 -04:00
Rapptz
6076c8c671 Better chunking behaviour and add members on PRESENCE_UPDATE.
This should hopefully cover all cases where members are added.
There was a bug where an array of chunks received would get entirely
processed if only a single chunk was received. This was fixed by
explicitly bailing early if we're requesting for chunks.
2016-04-11 14:24:15 -04:00
Khazhismel
84f1342b85 Fix chunk requests not actually being batched. 2016-04-11 11:53:54 -04:00
Rapptz
0401ab561b Proper chunking for unavailable guilds.
This will also delay on_ready until all chunking is complete.
2016-04-10 00:47:00 -04:00
Rapptz
29d3f5a886 Allow Client.edit_profile to work with bot accounts. 2016-04-09 21:42:26 -04:00
Rapptz
fa14c72836 Add User.bot attribute to check if a user is a bot account. 2016-04-09 21:42:25 -04:00
Khazhismel Kumykov
9f722731dd Fix typo in Role.created_at 2016-04-09 02:33:09 -04:00
Rapptz
eedad13ac1 Add utility function for generating OAuth2 urls. 2016-04-08 22:51:57 -04:00
Rapptz
72e84a1b47 Change all email/password pair examples to use token. 2016-04-08 22:02:38 -04:00
Rapptz
93edf88ee4 Change login, start and run to be variadic. 2016-04-08 22:00:06 -04:00
Rapptz
222a89a653 Fix unclosed response and document token login a bit better. 2016-04-08 21:16:30 -04:00
Max Gurela
7f340f88ad Add support for token login (for bots) 2016-04-08 21:11:22 -04:00
Rapptz
e64787a415 Guard against AttributeErrors when clearing cached slot cache. 2016-04-05 18:22:44 -04:00
Rapptz
dfd51b95d6 Make Message.clean_content a cached property again.
Instead, clear the cached properties so they will be re-cached when
invoked again.
2016-04-05 18:01:55 -04:00