Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 6119f280c5 Warnings are yellow. 2017-05-20 09:15:57 -04:00
Rapptz 229c471106 More broken Channel references. 2017-05-20 08:48:04 -04:00
Rapptz bd7b2e2d35 Oversight in Permissions still having a table. 2017-05-20 08:47:08 -04:00
Rapptz 969bb085cb Slightly different styling for supported operations. 2017-05-20 08:39:52 -04:00
Rapptz f4e01b3a92 Make supported operations stand out more than attributes. 2017-05-20 02:08:34 -04:00
Rapptz 3727618b65 Kill remaining references to discord.Channel in documentation. 2017-05-19 21:58:02 -04:00
Rapptz 8a49a3a74f Update migrating page with new extension information. 2017-05-19 21:56:16 -04:00
Rapptz b81fbb5a7f [commands] Add Context.reinvoke and Command.root_parent
Context.reinvoke would be the new way to bypass checks and cooldowns.
However, with its addition comes a change in the invocation order of
checks, callbacks, and cooldowns. While previously cooldowns would
trigger after command argument parsing, the new behaviour parses
cooldowns before command argument parsing.

The implication of this change is that Context.args and Context.kwargs
will no longer be filled properly.
2017-05-19 21:33:39 -04:00
Rapptz c3e39cd722 [commands] Fix Context.command_failed from being incorrect.
When used, it would be set to False after the invoke was done. Ideally
it should report to False during invoke but True during any error
case.
2017-05-18 20:48:38 -04:00
Rapptz 8526995004 Minor speedup when doing comparisons.
Shred 2 getattr calls + 1 global lookup to 1 global lookup.
2017-05-18 05:15:06 -04:00
Rapptz 8e34a256a4 Fix User == Member comparisons. 2017-05-18 05:12:48 -04:00
Rapptz 026e526817 Lazy fix for active class when viewport is too small for sidebar. 2017-05-17 20:10:58 -04:00
Rapptz 02d854a99c Fix format string in new bot template. 2017-05-17 19:48:51 -04:00
Rapptz 8aa04b7084 First pass at having a __main__ file.
This allows you to generate templates and projects easily. Its main
purpose is to be easy to use for beginners in the upcoming
documentation.

Two new commands are added:

* newbot
  * creates a new bot template using a name and optional directory
* newcog
  * creates a new cog template using a name and optional directory
2017-05-17 05:53:24 -04:00
Rapptz 3cb680159e Add __unload to the special cog method list. 2017-05-17 00:57:21 -04:00
Rapptz df90aaa610 Rename internal ConnectionState attribute to have an underscore.
Some people like to use that variable name apparently.

See #568 and #569.
2017-05-16 20:20:39 -04:00
Rapptz 9cbbd8af65 Highlight currently visited section. 2017-05-16 03:12:43 -04:00
Rapptz 7a06f0f3bf Client.get_user_info uses int for IDs not str.
Realistically both will work but let's not say that.
2017-05-15 21:31:38 -04:00
Rapptz 20949fc70e Add helpful admonition CSS. 2017-05-15 20:47:49 -04:00
Rapptz 7a84661312 Rename Colour.to_tuple to Colour.to_rgb. 2017-05-15 03:40:27 -04:00
Rapptz 6f53491f9a Add Colour.from_rgb. 2017-05-15 03:37:21 -04:00
Rapptz c1130d2879 [commands] Update check examples to work with rewrite. 2017-05-15 02:52:20 -04:00
Rapptz 4023510032 Use describe for Colour documentation. 2017-05-15 02:29:03 -04:00
Rapptz d80e08c1c6 Fix all broken cross references in the migrating page... again. 2017-05-15 02:08:56 -04:00
Rapptz b895a3fabb Remove a bunch of red from the theme. 2017-05-15 01:55:42 -04:00
Rapptz dd11b1f54c Make buttons in the sidebar not so sticky looking. 2017-05-15 01:42:30 -04:00
Rapptz db3bc4076a Completely new theme separate from alabaster. 2017-05-15 01:22:00 -04:00
Rapptz 2d465d9b3c Fix dead links in the migrating page. 2017-05-14 23:55:38 -04:00
Rapptz c45d18a6ea Add note about upgraded dependencies in the migrating page. 2017-05-14 17:59:17 -04:00
Rapptz 6b3abeb810 Fix FAQ using string for IDs. 2017-05-14 04:43:15 -04:00
Rapptz de00573288 Fix some broken cross references in the migrating page. 2017-05-13 23:16:40 -04:00
Rapptz b0dec645cb Add warning about sharing tokens. 2017-05-13 21:31:38 -04:00
Rapptz f73eb087c9 Use describe instead of tables for supported operations. 2017-05-13 18:48:14 -04:00
Rapptz 96eca8aa53 Add Colour.blurple and Colour.greyple. 2017-05-13 17:39:12 -04:00
Rapptz 64d09f3720 Force disconnect in abc.Connectable.connect.
Some cases of is_connected is not set so we need to force it to clear
it anyway.
2017-05-13 16:01:32 -04:00
Rapptz cacd49b039 Be more consistent with period placements. 2017-05-12 22:48:17 -04:00
Rapptz c6e1629011 Make images in the discord intro have consistent dimensions. 2017-05-12 22:45:27 -04:00
Rapptz 56972f509f Remove ugly background in the FAQ page. 2017-05-12 22:09:53 -04:00
Rapptz 823bfe5b2d Rename image file to lower case png.
Apparently Windows likes to make it PNG and not png which is quite
odd really.
2017-05-12 22:00:19 -04:00
Rapptz cf2269fdf4 Fix some left over incorrect snippets. 2017-05-12 21:12:28 -04:00
Rapptz a93145d1f0 Fix dead cross-reference links in the migrating page. 2017-05-12 21:01:50 -04:00
Rapptz 53926e3126 Hide the title in the index. 2017-05-12 20:37:45 -04:00
Rapptz b44bba6ee6 First pass at documentation reform. 2017-05-12 20:14:34 -04:00
Rapptz be2e706b2a Rename abc.Callable to abc.Connectable. 2017-05-10 21:36:49 -04:00
Rapptz d7478425ca [commands] Converter.convert is always a coroutine.
Along with this change comes with the removal of Converter.prepare and
adding two arguments to Converter.convert, the context and the argument.

I suppose an added benefit is that you don't have to do attribute
access since it's a local variable.
2017-05-10 21:30:41 -04:00
Rapptz 8ef984746a [commands] Fix default error handler to work with the switch. 2017-05-10 19:36:46 -04:00
Rapptz 5106feaf57 Allow comparison between User and Member instances again. 2017-05-10 19:32:25 -04:00
Rapptz a2c9cefac9 [commands] Re-order error handler arguments.
They now have Context as the first argument to be consistent with other
context-passing functions.
2017-05-10 17:49:42 -04:00
Rapptz 6b063deda9 Only set the attribute if it isn't None. 2017-05-10 14:57:26 -04:00
Rapptz e557f69c83 Make sure that websockets.connect is a coroutine.
In 3.5.0 and 3.5.1 asyncio.ensure_future requires a Future or a
coroutine otherwise a TypeError is raised. The issue is that the
websockets.connect call is an awaitable rather than a coroutine.

asyncio.ensure_future did not gain support for awaitables until 3.5.2.
This patch allows 3.5.0 and 3.5.1 to connect regardless of their python
version.
2017-05-09 20:35:18 -04:00
Rapptz 8081a654e8 Remove Guild.change_vanity_invite in favour of Guild.edit 2017-05-09 17:49:05 -04:00
Rapptz 1db31d8339 Add back Client.create_guild. 2017-05-09 14:11:13 -04:00
Rapptz a0fc1402d7 Rename GuildRegion to VoiceRegion.
This naming makes more sense since voice regions are not a guild
exclusive concept.
2017-05-09 13:42:35 -04:00
Rapptz 152fc89508 Properly check for audit log entry termination. 2017-05-07 21:04:43 -04:00
Rapptz 140be3e4c8 Make AuditLogDiff.roles an empty list instead of None. 2017-05-07 12:09:28 -04:00
Rapptz eb58ddffd8 Skip None action types when iterating. 2017-05-07 12:09:27 -04:00
Rapptz dff6bcc745 Add support for audit log reasons.
Most routes now have a 'reason' keyword argument.
2017-05-07 03:08:06 -04:00
Rapptz 2b44876955 Fix NameError when making things Object in audit logs. 2017-05-07 01:06:15 -04:00
Rapptz 7916878eb5 Audit log role add and removes are lists, not single item.
Breaking change. role -> roles and it's now a list.
2017-05-06 16:39:47 -04:00
Rapptz d7153b1b5c Replace hasattr with try except in chunker. 2017-05-05 21:45:51 -04:00
Rapptz 1626ade67d Split on_channel_pins_update as well. 2017-05-05 21:37:38 -04:00
Rapptz 322c70fda9 Rework some events to make more sense.
This is a breaking change.

1. Change on_guild_emojis_update to have 3 arguments.
    - The first parameter is now the guild object
2. Remove on_channel_create, on_channel_delete, and on_channel_update
	- They are now split into two.
	- on_guild_channel_[create|delete|update]
	- on_private_channel_[create|delete|update]
3. Change on_member_ban to allow User.
    - (member) -> (guild, user)
    - user can also be a Member
2017-05-05 20:47:25 -04:00
Rapptz c20ba51e28 [commands] Export is_nsfw check. 2017-05-05 20:21:28 -04:00
Rapptz d24c2a09b6 Change some format usage to use %-formatting.
Minor speed increase when we're not doing excessive attribute
access or any type of formatting.
2017-05-04 06:04:55 -04:00
Rapptz 86bfcdd129 Add support for message delete audit log action type. 2017-05-04 04:35:02 -04:00
Rapptz 663315f7ac Explicitly close UDP sockets when re-creating them.
This does not actually make a big difference since the GC should
technically close them when needed but might as well be more explicit.
2017-05-02 20:25:54 -04:00
Rapptz fac43ad595 Fix NameError in HTTPClient.kick 2017-05-02 20:14:40 -04:00
Rapptz c8937ed2aa [commands] Add is_nsfw check. 2017-05-01 22:36:22 -04:00
Rapptz c9565e57d3 Make sure that the chunker task only runs once. 2017-05-01 22:34:24 -04:00
Rapptz ba2dad2093 Add support for setting and retrieving guild vanity invites. 2017-04-30 07:17:00 -04:00
Rapptz c54a6a927d Implement audit logs. 2017-04-30 02:58:27 -04:00
Rapptz 3f45db5c3b Better TextChannel.is_nsfw() check. 2017-04-30 02:53:33 -04:00
Rapptz 10453d6718 Add Client.get_emoji to get an Emoji from an ID. 2017-04-30 02:53:05 -04:00
Rapptz d3a86a5fb6 Add TextChannel.is_nsfw method to check for NSFW channels. 2017-04-26 21:02:30 -04:00
Rapptz 92d55077aa Don't set VoiceClient.channel to None when VOICE_STATE_UPDATE says so.
Sometimes VOICE_STATE_UPDATE gives us a channel_id: null payload and
we would end up clearing the VoiceClient.channel state along with
it.
2017-04-26 04:52:49 -04:00
Rapptz 37681dd0ea [commands] Fix lack of space in when_mentioned 2017-04-24 00:23:23 -04:00
Rapptz 6188397fc9 [commands] Add Context.voice_client shortcut. 2017-04-24 00:17:04 -04:00
Rapptz c005ef5d44 [commands] Make when_mentioned always have both mention formats.
This will allow it to work in mobile clients which don't respect the
<@!id> format in case of nicknames.
2017-04-24 00:13:27 -04:00
Rapptz e445fa9335 Wait 5 seconds before attempting to RESUME during INVALIDATE_SESSION. 2017-04-22 21:34:56 -04:00
Rapptz 1519a6fefa Fix some linting errors. 2017-04-22 04:50:31 -04:00
Rapptz c30ab8a3e5 Fix NameError in Role.edit when moving roles. 2017-04-22 04:47:43 -04:00
Rapptz 0ce781b37c Fix NameError in GuildChannel.changed_roles 2017-04-22 04:44:21 -04:00
Rapptz 3cfebc4605 Timeout when doing initial connection. 2017-04-22 02:18:35 -04:00
Rapptz b6ac856868 [commands] Allow loading cogs from folders.
Internally, instead of using module objects just use the `__module__`
attribute which is the same thing. From preliminary testing this seems
to work fine with both regular one-file-per-cog approaches and the
folder cog approach.

Fixes #126.
2017-04-21 18:57:28 -04:00
Rapptz b05d8790fc Allow using Reaction objects while adding or removing reactions. 2017-04-21 17:32:09 -04:00
Rapptz 83649d7f0a Support for new member message types. 2017-04-21 03:49:05 -04:00
Rapptz 34c60002bf Allow setting a default volume in PCMVolumeTransformer. 2017-04-19 17:33:16 -04:00
Rapptz f5cfc96aaf Add PCMVolumeTransformer to augment volume of a PCM stream.
This also introduces the idea of replacing the VoiceClient.source on
the fly. Note that this internally pauses and resumes the audio
stream.
2017-04-19 17:23:39 -04:00
Rapptz 07d5328873 Add VoiceClient.is_paused to query pause state. 2017-04-19 16:06:45 -04:00
Rapptz 55e63ed87f Add VoiceClient.source to get the AudioSource being played. 2017-04-19 01:19:39 -04:00
Rapptz efd6d11e9a Fix static cut-off when playing. 2017-04-18 22:20:40 -04:00
Rapptz aa32c384ea Clean cache when TimeoutError occurs. 2017-04-18 20:13:34 -04:00
Rapptz f9c2ac9d25 Better handling of VOICE_SERVER_UPDATE.
This now sort of respects "Awaiting Endpoint..." waiting. I haven't
actually tested out this case since it's hard to get it. However this
new code does work with the regular connection flow.
2017-04-18 19:05:34 -04:00
Rapptz b4bc4dfd12 Fix FFmpegPCMAudio not working with spaces in filename. 2017-04-18 16:05:32 -04:00
Rapptz 1fc08bc5a2 Remove unused imports. 2017-04-18 04:22:35 -04:00
Rapptz d534a0989e Properly cleanup of VoiceClients in cache. 2017-04-18 04:09:33 -04:00
Rapptz 65bd510df6 Add Guild.voice_client shortcut. 2017-04-18 04:07:05 -04:00
Rapptz 3b1b26ffb1 Re-implement voice sending.
This is a complete redesign of the old voice code.

A list of major changes is as follows:

* The voice websocket will now automatically reconnect with
  exponential back-off just like the regular Client does.
* Removal of the stream player concept.
* Audio now gracefully pauses and resumes when a disconnect is found.
* Introduce a discord.AudioSource concept to abstract streams
* Flatten previous stream player functionality with the
  VoiceClient, e.g. player.stop() is now voice_client.stop()
* With the above re-coupling this means you no longer have to
  store players anywhere.
* The after function now requires a single parameter, the error,
  if any existed. This will typically be None.

A lot of this design is experimental.
2017-04-18 03:49:48 -04:00
Rapptz 38fd0928df Don't clear state when READY is reached for auto sharded clients. 2017-04-16 02:32:23 -04:00
Rapptz 3983eb3ba5 Support for API v7 error handling. 2017-04-15 19:55:51 -04:00