Rapptz
a128249b63
Add support for different message types and call message.
2016-07-13 20:11:18 -04:00
Rapptz
69c506d7ae
Handle CHANNEL_UPDATE for group direct messages.
2016-07-13 17:23:35 -04:00
Rapptz
ddd3fd0a3d
Begin working on gateway v6 changes.
...
The first batch of changes are related to channel types and group
direct messages. Support these first so READY begins parsing.
2016-07-13 00:10:16 -04:00
Rapptz
cd87f247d3
[commands] Make Bot.check decorator an actual decorator.
2016-07-08 04:29:11 -04:00
Rapptz
166d8257ec
[commands] Refactor pagination into its own class.
...
This change allows users to more easily create their own formatters
without having to reinvent the pagination logic themselves. Hopefully
this makes it less of a pain for people to create custom help pages.
2016-07-05 21:44:14 -04:00
Rapptz
6f3bd7c0e6
Fix issue with removing roles out of order.
...
Fixes #250 .
2016-07-04 08:01:57 -04:00
Rapptz
1500001b04
[commands] Fix error in converters in a private message context.
...
I was referencing a member function that did not actually exist. So I
ported it over to a free function that could be used.
2016-07-02 23:39:29 -04:00
Rapptz
4d71b3fe7d
[commands] Do not lower-case the function name for default command names
...
There are some badlets out there that apparently violate PEP-8.
2016-07-01 22:12:57 -04:00
Rapptz
a2b053a517
[commands] Make GroupMixin.remove_command return None.
...
This is for cases where the command has been removed already. This will
make the function have a somewhat no exception guarantee.
2016-06-30 15:15:49 -04:00
Rapptz
0eccd85711
Add implicit cases to permission resolution in Channel.permissions_for
2016-06-28 20:34:03 -04:00
Rapptz
30d623cd46
Add Server.mfa_level to query a server's 2FA requirement.
2016-06-28 19:25:50 -04:00
Rapptz
d87d11c5a6
Fix voice states being overwritten after a GUILD_SYNC.
...
This was a two-fold problem. The first of which involved the overwriting
of members during a GUILD_SYNC. Since we are requesting a chunk anyway,
we have all the member references we need without actually chunking. The
second problem came from the order. We were doing a GUILD_SYNC and then
doing the chunking requests. We should do the GUILD_SYNC after the
chunking in order to just update presences.
2016-06-28 19:07:56 -04:00
Rapptz
3cad1aeb59
Version bump to v0.10.0
2016-06-28 01:24:55 -04:00
Rapptz
e68e167048
Update installation instructions.
2016-06-28 01:18:44 -04:00
Rapptz
4c1b8d1de1
Add PyNaCl to setuptool's extras requirements.
2016-06-28 00:59:12 -04:00
Rapptz
197e52994e
Update whats new page a little bit to say the changelog is too big.
2016-06-27 23:54:00 -04:00
Rapptz
01a46f0612
Make Message.channel_mentions unique.
2016-06-27 21:44:29 -04:00
Rapptz
e600abbbab
Ignore HEARTBEAT_ACK for now to disable the noisy logging.
2016-06-27 21:32:43 -04:00
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
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
e2e6d7182e
Add FAQ entry for after being called right away.
2016-06-20 00:59:30 -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
Rapptz
4dbac9423d
[commands] Only show CommandNotFound on non-empty commands.
2016-06-14 01:35:35 -04: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
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
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
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
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
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