2052 Commits

Author SHA1 Message Date
Rapptz
c34eb5f6dd Document that bot users can't use Client.accept_invite 2016-06-26 14:18:47 -04:00
Rapptz
6556392a9c [commands] Fix error where consume rest would not work.
I didn't end up refactoring this piece of work out.
2016-06-23 20:17:19 -04:00
Rapptz
629c24339b [commands] Fix bug that made functions stop working as converters. 2016-06-23 18:36:41 -04:00
Harmon758
6061f83c3f Fix bug with edit_profile for user accounts 2016-06-23 13:52:42 -05:00
Rapptz
e64eb08c92 [commands] Port special cased discord converters to commands.Converter 2016-06-22 20:05:37 -04:00
Rapptz
c02d9403e6 Fix bug with Client.server_voice_state not deafening. 2016-06-22 19:39:20 -04:00
Rapptz
880ca3162e [commands] Add commands.Converter base for converts with context.
This allows users to implement converters that work similar to the ones
special cased by the `discord` classes.
2016-06-22 19:06:25 -04:00
Rapptz
a1ae8fdb10 Handle MESSAGE_DELETE_BULK. 2016-06-22 06:15:52 -04:00
Rapptz
8b3617111a Support for v5 Gateway. 2016-06-22 05:00:08 -04:00
Rapptz
c3c9db7777 Fix bug with deleting private messages.
This was due to an AttributeError occurring when getting the guild_id
from the channel. PrivateChannels do not have guild_ids so they should
be None.
2016-06-20 22:11:43 -04:00
Rapptz
324d10c9d9 [commands] Add Command.ignore_extra attribute to ignore extra arguments
This allows you to strictly require a number of arguments. The default
behaviour in this case is still `True`, since it would be a breaking
change otherwise and is a sane default. However if someone would want
to set this to `False`, they would receive an exception of type
`TooManyArguments` if too many arguments are passed to a command.

Hopefully this removes the uses of `ctx.message.content == 'stuff'`
inside commands.
2016-06-20 21:38:17 -04:00
Rapptz
102e8aca43 Raise TypeError if "after" parameter is not a callable. 2016-06-20 01:05:28 -04:00
Rapptz
adbf2c720f [commands] Add the concept of global checks.
Global checks are checks that are executed before regular per-command
checks except done to every command that the bot has registered. This
allows you to have checks that apply to every command without having to
override `on_message` or appending the check to every single command.
2016-06-19 22:15:11 -04:00
Rapptz
6f173cc095 [commands] Add delete_after keyword argument to utility functions.
This includes things like `Bot.say`, `Bot.upload`, `Bot.whisper`,
and `Bot.reply`.
2016-06-19 19:43:49 -04:00
Rapptz
6b4d22ce81 Clarify that Client.logs_from can take a PrivateChannel too. 2016-06-18 02:15:36 -04:00
Rapptz
b3edb31df5 Add support for message pinning.
This includes `Client.pin_message`, `Client.unpin_message` and
`Client.pins_from`. This also adds the `Message.pinned` attribute
to the `Message` object.
2016-06-18 02:14:44 -04:00
Rapptz
4d375fc856 Fix HTTPClient.recreate to actually work.
Forgot a keyword argument.
2016-06-18 01:43:57 -04:00
Rapptz
e19244b041 Add Member.top_role property to get the highest role. 2016-06-18 01:37:45 -04:00
Rapptz
07607060c1 Fix Colour.__str__ to actually pad zeroes. 2016-06-16 22:49:34 -04:00
Rapptz
92fe4daa86 Attempt resume when we receive a 1001. 2016-06-16 19:13:13 -04:00
Rapptz
183e7341f6 [commands] Add Context.cog property. 2016-06-16 05:42:28 -04:00
Rapptz
2ebc0ab218 Don't assume that any shared fields are optional in Client.edit_channel.
Thanks Jake and night.
2016-06-15 20:56:43 -04:00
Rapptz
eeba4963f3 The name is required in Client.edit_channel so add it if it is missing. 2016-06-15 20:31:13 -04:00
Rapptz
fa0c98da4c Make logging for HTTP requests more useful. 2016-06-15 20:16:32 -04:00
Rapptz
7c760d3271 Add Client.get_message 2016-06-15 04:46:19 -04:00
Rapptz
e736554777 Make sure the socket is closed when we call VoiceClient.disconnect 2016-06-14 22:33:25 -04:00
Rapptz
08674f115b Make Channel.overwrites_for return PermissionOverwrite 2016-06-14 22:26:15 -04:00
Rapptz
d7efc9778b Make Client.edit_channel_permissions use PermissionOverwrite. 2016-06-14 22:26:14 -04:00
Rapptz
f0fc70b2cf Add a way to set permission overwrites when creating a channel. 2016-06-14 22:26:14 -04:00
Rapptz
46babe822a Fix bug with editing messages over private messages. 2016-06-14 22:26:13 -04:00
Rapptz
fb82a37cc6 Add discord.PermissionOverwrite type for channel-specific overwrites. 2016-06-14 22:26:13 -04:00
Rapptz
c162b666ea Fix bucket for change_nickname. 2016-06-14 19:15:11 -04:00
PapyrusThePlant
7d5d8aa918 Doc string typos 2016-06-14 18:53:40 -04:00
Hornwitser
e516c24746 Fix exception when handling login failure
Logging in with an invalid token would throw a TypeError due to improper
passing of arguments to HTTPClient._token.  Fix by properly passing the
keyword only bot argument.
2016-06-14 18:52:48 +02:00
Rapptz
4dbac9423d [commands] Only show CommandNotFound on non-empty commands. 2016-06-14 01:35:35 -04:00
Jake
f6ef4868d1 Fix concurrently joining more than one voice server at a time 2016-06-13 01:43:55 -07:00
Rapptz
fec459e755 Document Server.large 2016-06-12 23:46:12 -04:00
Rapptz
8d1867393c Give Client.email a default value of None. 2016-06-12 23:44:41 -04:00
Rapptz
c3933c379a Make the default filename a little bit prettier. 2016-06-12 23:43:03 -04:00
Rapptz
3895cf9295 Fix bug with login token not being properly written in cache. 2016-06-12 23:25:22 -04:00
Rapptz
b496ea7972 Fix bug with logs_from URL params not being correct.
The bug happened because I forgot to pass in the id attribute.
2016-06-12 23:00:33 -04:00
Rapptz
f3b257b342 Fix bug with uploading file-like objects.
I would require bytes-like objects instead due to its usage inside
the HTTPClient. Release this restriction so old `send_file` code works.
2016-06-12 22:41:30 -04:00
Rapptz
64c1e7d199 Fix bug with logging in with email and password. 2016-06-12 22:41:14 -04:00
Rapptz
879584b81a Fix bug with edit_role and create_role not working.
This was due to an error in overzealous removal of code.
2016-06-12 22:40:35 -04:00
Rapptz
aecf0daf33 Fix sed error involved in creation of voice websocket. 2016-06-12 21:16:57 -04:00
Rapptz
dbd3147059 Support more close codes for RESUME. 2016-06-12 20:48:23 -04:00
Rapptz
6b5d579d0b Remove unused verify response function. 2016-06-12 20:44:40 -04:00
Rapptz
e8c32c542e Make HTTPException get the error JSON's message attribute. 2016-06-12 20:36:07 -04:00
Rapptz
1fba1b06fa Rewrite HTTP handling significantly.
This should have a more uniform approach to rate limit handling. Instead
of queueing every request, wait until we receive a 429 and then block
the requesting bucket until we're done being rate limited. This should
reduce the number of 429s done by the API significantly (about 66% avg).

This also consistently checks for 502 retries across all requests.
2016-06-12 20:33:09 -04:00
Rapptz
fa36a449e9 Change HTTPException to only take a single parameter. 2016-06-12 13:57:05 -04:00