2409 Commits

Author SHA1 Message Date
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
Rapptz
5f9ed8c9d2 [commands] Make the CommandError required argument optional again. 2016-06-10 23:50:17 -04:00
Rapptz
a175c86aa1 Add Client.application_info to retrieve the current app info.
Fixes #241.
2016-06-10 22:28:15 -04:00
Rapptz
fe5c369fe9 Handle voice websocket closure if it's a successful close. 2016-06-10 21:45:42 -04:00
Rapptz
bde266bbb9 [commands] Fix @everyone elevation in the default help command. 2016-06-10 21:31:11 -04:00
Rapptz
1228159f30 [commands] Fix bug with Context.command not updating in groups.
This happened when `invoke_without_command` was set to True.
2016-06-10 21:05:42 -04:00
Rapptz
74cfc53bc8 [commands] Make it so CommandError does not contain @everyone mentions.
Mitigates some permission elevation issues.
2016-06-10 20:40:35 -04:00
Rapptz
43bbecd519 [commands] Exceptions raised while invocation raise CommandInvokeError.
This change should make it a bit more intuitive to get the original
exception without having the gotcha of checking ``isinstance`` inside
the error handler.
2016-06-10 20:32:05 -04:00
Rapptz
d914c0a4e4 Clarify on_ready triggering more than twice.
On that note, fix the background_task example to use `Client.run`
instead of manual loop management. That way the task will be cleaned
up and cancelled inside `Client.run`.
2016-06-10 20:16:21 -04:00
Rapptz
a0f37f8e85 [commands] Fix issue with proper local error handlers not beign called. 2016-06-10 01:07:03 -04:00
Rapptz
631cc5a7d6 Add Client.move_channel to change channel positions. 2016-06-07 21:29:59 -04:00
Rapptz
a0966f59d2 Fix some typos in the FAQ page. 2016-06-07 20:39:15 -04:00
Rapptz
19c2bad5be Add FAQ section to the documentation. 2016-06-07 05:18:57 -04:00
Jake
41a2b5ed73 Actually read from the voice websocket & fix heartbeat.
This change makes it so that the buffer doesn't fill and the voice server drops the socket.

Also, use correct interval for voice websocket heartbeat.
2016-06-05 21:18:36 -07:00
Rapptz
b9c7b05176 [commands] Unify Command.handle_local_error into general dispatcher. 2016-06-05 00:35:27 -04:00
Rapptz
661645ac97 [commands] Add Command.qualified_name to get the full command name.
This also sets `__str__` to do the same thing.
2016-06-04 22:31:00 -04:00
Rapptz
37dfe38af5 [commands] Fix bug where Context.command would not update. 2016-06-04 22:29:50 -04:00
Rapptz
9d9a20c128 [commands] Fix bug where subgroups would be repeatedly called.
This happened due to not resetting the `invoked_subcommand` state
tracking. Since the `invoked_subcommand` was not reset, it would always
assume that it was valid and repeatedly call it when passed invalid
subcommands/arguments.
2016-06-04 22:04:05 -04:00
Rapptz
24a9da04db [commands] Cleanup Command.invoke code due to exception propagation. 2016-06-04 21:41:01 -04:00
Khazhismel Kumykov
33a69681fc [commands] Dispatch command_error on command exec error.
Provide fallback on_command_error - will only fire if no cog handlers and
no local handler.
Propagate exceptions in checks and argument parsing to bot.
2016-06-04 21:22:10 -04:00
Rapptz
329f916e10 Add bot keyword argument to login via static token. 2016-06-03 02:12:39 -04:00
Rapptz
f6fa1e837a Actually use v4 gateway and fixes thanks to Jake. 2016-06-02 07:32:35 -04:00
Rapptz
c97e5a17e6 Update positions when a role is added or removed. 2016-06-01 21:06:04 -04:00
Rapptz
b6492a4124 Clarify Role.position documentation. 2016-06-01 20:47:33 -04:00
Rapptz
9a6234961f Make Channel.changed_roles into an on-the-fly property instead. 2016-06-01 20:33:38 -04:00
Rapptz
5016f12079 Add Role.server attribute.
This breaks events that expected a server parameter for the role events.
2016-06-01 19:27:48 -04:00
Rapptz
8638ff4414 Update voice client main ws references when reconnecting. 2016-06-01 05:20:22 -04:00
Rapptz
e0a91df32b Add RESUME support. 2016-06-01 05:13:15 -04:00
Rapptz
20e86973ea [commands] Delete frame objects when done using them. 2016-05-31 23:22:53 -04:00
Rapptz
bbc78b29ae Fix discord.Object documentation. 2016-05-31 20:39:12 -04:00
Rapptz
3c8fcd3584 [commands] Add support for self-bots. 2016-05-31 20:30:17 -04:00
Harmon758
c8698787fa Allow datetime in limit parameters for purge_from
Check for datetime instead of using logs_from, for 3.4 compatibility
2016-05-31 19:35:14 -04:00
Rapptz
13a9a7520c Fix ytdl documentation link. 2016-05-27 15:00:50 -04:00
Rapptz
70cc5eb1bb Allow to edit mentionable property in Client.edit_role. 2016-05-27 14:03:50 -04:00
Rapptz
f3f3ab1cd4 Reference the Discord UI in the permission documentation. 2016-05-23 15:06:09 -04:00
Rapptz
aa45bce212 Documentation fixes for role related functions. 2016-05-23 15:03:22 -04:00
Rapptz
8f4816ddae Close voice connections before closing the websocket. 2016-05-22 00:58:27 -04:00
Harmon
c2e7a68105 Fix purge_from to use LogsFromIterator.create (#219) 2016-05-20 21:15:43 -04:00
Rapptz
bf650297a1 Only trigger on_voice_state_update if the member actually exists. 2016-05-20 19:22:22 -04:00
Rapptz
a31188c966 Fix bug where members leaving will stay in Channel.voice_members. 2016-05-20 19:21:06 -04:00
Rapptz
e3c4daf717 Add __slots__ for discord.Channel.
Not sure why this was missing.
2016-05-20 18:11:58 -04:00
Rapptz
fe1b5b2941 Add support for voice channel user limits. 2016-05-20 18:11:58 -04:00
Khazhismel Kumykov
492c9afffb logs_from improvements for after param.
- Properly support 'after' alone
- Properly support both 'before' and 'after'
- Add optional 'reverse' parameter to sort messages oldest->newest to
  1) provide a sorted result set for 'after'
  2) give flexibility when using both 'before' and 'after'
2016-05-20 18:11:57 -04:00
Khazhismel Kumykov
8e5347f4ed Allow datetime in limit parameters for logs_from.
Add time_snowflake to convert a datetime to a "snowflake".
2016-05-20 18:11:56 -04:00
Khazhismel Kumykov
7bdddc37a0 Retry send_file on 502.
Rename _rate_limit_helper to _retry_helper
2016-05-20 18:11:56 -04:00
Khazhismel Kumykov
a1b5cefc8b Add move_role
move_role will only send changed roles.
discord will accept trying to move to position 0, or trying to move the
everyone role. It will result in unexpected changes, so we prohibit it.
2016-05-20 18:11:55 -04:00
Rapptz
e66b2dce88 Rename threading internal variable conflict. 2016-05-13 20:24:45 -04:00
Rapptz
9077b4e319 Fix Member.colour to use the new algorithm for determining colour. 2016-05-12 22:12:33 -04:00
Rapptz
9176caa355 Fix Channel.permissions_for to work with the new permission system. 2016-05-12 21:25:18 -04:00