Commit Graph

784 Commits

Author SHA1 Message Date
09e77e548a Upgrade requirements to stable aiohttp.
Also lighten up on websockets requirements.
2016-09-20 23:08:41 -04:00
967d43c35b [commands] Allow coroutine functions in Bot.command_prefix 2016-09-17 15:01:56 -04:00
203c64a9a4 Add support for server verification levels.
This adds a new enum named VerificationLevel to denote said verification
level. This enum will also be used in the Client.edit_server calls
instead of the undocumented int parameter.
2016-09-12 22:38:06 -04:00
713037836c Document new MessageType.pins_add 2016-09-12 20:25:32 -04:00
da986b2d7c Support for pinned system messages. 2016-09-12 20:22:53 -04:00
1a0182e6eb Fix import for Object.created_at 2016-09-10 23:06:02 -04:00
26f5bcd725 Fix bug when permission overwrites could be applied out of order.
The bug was due to the fact that the way overwrites work is by doing
a loop of all the values and then applying deny first and then allow.
That way the overwrite is defined if role A and role B deny a
permission but role C allows it (and said member has A, B, C roles)
then the resolution should allow it rather than deny it regardless of
the order of the data it is received in.
2016-09-10 16:11:52 -04:00
bca6b2a133 Fix bug that disallowed ServerRegion from being used in edit_server. 2016-09-09 19:24:21 -04:00
8384edb061 Add new EU Central and EU West server regions. 2016-09-09 19:23:55 -04:00
152b3a1125 [commands] Default converters now take in IDs to match against. 2016-09-09 06:53:22 -04:00
b0509a6910 [commands] Cooldowns don't trigger due to user usage error.
Fixes #325
2016-09-08 07:13:22 -04:00
b7ffbca0c7 [commands] Added a method to reset command cooldown. 2016-09-08 07:02:33 -04:00
a23e51f6c4 Fix gateway code to work with websockets 3.2. 2016-08-25 17:09:34 -04:00
0b6e74ebec Ensure that keep alive threads are closed when a websocket closes.
The library worked with the assumption that whenever the recv call for
the websocket would lead to a closure, the close method would be called
to signal closure and as a result our close method would be called.

This assumption turned out to be false as the websockets library would
instead call an internal function named close_connection instead. So to
solve our problem we need to override this function instead of close.
2016-08-21 11:45:41 -04:00
dd8c32ceff Remove download stats badge. 2016-08-14 19:28:14 -04:00
b1da659374 Document that Client.get_channel works with PrivateChannel too. 2016-08-14 16:53:43 -04:00
b2808b2abd Document what it means that an object is not edited in-place explicitly
This seems to be a very common question regarding the docs so might as
well document exactly what this means rather than using cryptic and
confusing wording.
2016-08-14 13:52:08 -04:00
83c7ba612e Explain cases where the on_message_edit event can be triggered. 2016-08-14 13:42:39 -04:00
1e9251cfef [commands] Delete module when it does not have a setup function. 2016-08-10 15:11:45 -04:00
6344504dfc Emoji.url uses api url. 2016-08-06 16:54:07 -07:00
a55e1241a7 [commands] Add missing inspect import in converter.py 2016-08-04 21:39:44 -04:00
14c8aed1a3 Add emoji url property 2016-08-02 17:37:31 -07:00
504fbaafd5 Clean up Emoji documentation. 2016-08-01 21:05:51 -07:00
45083a6f15 Document the new emoji stuff. 2016-08-01 18:52:34 -04:00
c72c23278d [commands] Add custom emoji converter. 2016-07-31 22:39:45 -07:00
c5a989eeb2 Add custom emoji support. 2016-07-31 22:39:43 -07:00
fd3d775271 Version bump to v0.11.0 v0.11.0 2016-07-30 14:02:12 -04:00
3ec9b7fb97 [commands] Make HelpFormatter ignore hidden commands for max_width. 2016-07-30 13:27:41 -04:00
cfca7eb1f8 Rename Permissions.change_nicknames to change_nickname to match UI.
This is a breaking change.
2016-07-30 13:11:16 -04:00
0c95edab8c Handle receiving HEARTBEAT opcode. 2016-07-30 13:03:22 -04:00
667d2b384b Add functions to query and actually prune members from a server. 2016-07-29 14:40:30 -04:00
feeff2b848 Clarify that Client.purge_from requires Manage Messages for anything. 2016-07-29 09:59:28 -04:00
fbd628fae3 Fix KeyError when creating private channels in start_private_message.
I was not passing the full updated v6 payload.
2016-07-25 06:16:22 -04:00
ad226f2020 Add new External Emojis permission. 2016-07-24 07:56:48 -04:00
66875fbb0a Document VoiceState class. 2016-07-24 04:54:00 -04:00
b0e5357716 Fix voice state update issue in on_voice_state_update
Bug was caused to the shallow copy not copying over the VoiceState
information embedded into the copy. This would mean that when the event
is called, before and after voice state information is essentially
equivalent.

The solution to fix this is to also copy the VoiceState objects.
2016-07-23 05:18:56 -04:00
b862223a1f Fix TypeError when constructing a channel in start_private_message. 2016-07-23 02:14:02 -04:00
1a186c5a55 [commands] Fix cooldown decorator to work regardless of order. 2016-07-22 18:37:23 -04:00
b13029b993 Remove unused internal code in Member. 2016-07-22 18:09:53 -04:00
cd0de57d13 [commands] Implement a command cooldown system.
The way the command cooldown works is using a windowed way of doing it.
That is, if we have a cooldown of 2 commands every 30 seconds then if we
do a single command, we have 30 seconds to do the second command or else
we will get rate limited. This more or less matches the common
expectations on how cooldowns should be.

These cooldowns can be bucketed up to a single dimension of depth for
a per-user, per-guild, or per-channel basis. Of course, a global bucket
is also provided. These cannot be mixed, e.g. no per-channel per-user
cooldowns.

When a command cooldown is triggered, the error handlers will receive a
an exception of type CommandOnCooldown with proper information regarding
the cooldown such as retry_after and the bucket information itself.
2016-07-22 18:05:38 -04:00
5010e7dc55 [commands] Add UserInputError into the exception hierarchy.
This is for exceptions that are inherently based on user errors and not
permission based. e.g. passing incorrect number of arguments, too many
arguments, or an invalid argument. CommandNotFound is not classified
under this since it isn't inherently a user input error in all cases.

Some invalid commands can simply be due to an odd bot prefix. It would
also diminish the usefulness of the new parent class if CommandNotFound
was included.
2016-07-21 23:53:16 -04:00
0000b2576e Fix SyntaxError in constructing VoiceState for Python 3.4
Generalised unpacking is 3.5 only.
2016-07-21 22:09:38 -04:00
b0f5584961 Add AppInfo.owner attribute. 2016-07-21 01:16:29 -04:00
3cd9f80854 Fix bug where discriminators would not update in PRESENCE_UPDATE. 2016-07-21 01:09:12 -04:00
d961bc4da0 Add ourselves into the ringing lookup cache. 2016-07-15 23:43:40 -04:00
bd39c3ef45 Add utility properties to CallMessage to query information. 2016-07-15 23:42:53 -04:00
1c8ab25917 Add support for querying information about group calls. 2016-07-15 22:46:00 -04:00
33eba31aac Fix the displaying of Message.system_content 2016-07-15 22:11:56 -04:00
91351a3238 Handle adding and removal of group members. 2016-07-15 22:03:22 -04:00
18bdd3e7dd Make PrivateChannel.__str__ more useful for groups.
Also demote is_private to a property instead of a slot.
2016-07-15 21:45:23 -04:00