Commit Graph
100 Commits
Author SHA1 Message Date
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
Rapptz 22150b20b6 Start typing immediately when using async typing context manager. 2017-04-12 21:26:23 -04:00
Rapptz 0e5bf09021 Export missing enums. 2017-04-12 20:20:35 -04:00
Rapptz 728fae9285 Add Guild.explicit_content_filter. 2017-04-12 20:18:28 -04:00
Rapptz cadf6960b7 Use create_future wrapper for initially created Future. 2017-04-12 19:55:01 -04:00
Rapptz ac90159c72 Improve logging in more places.
This shows the Shard ID in more places, along with a gateway trace and
session ID. Also helps show the RESUME/IDENTIFY/RESUMED/READY flow a
bit more instead of it looking like the connection has zombied out.
2017-04-12 19:43:47 -04:00
Rapptz 3e15f46dcf [commands] Bot.get_all_emojis no longer exists. 2017-04-12 05:00:50 -04:00
Rapptz 7da0884bfb [commands] Export missing built-in converters. 2017-04-12 04:46:53 -04:00
Rapptz 982308da3c Use global user cache to fetch reaction event data.
Also make sure it isn't dispatched unless the data meets the integrity
checks (i.e. not None).
2017-04-09 21:37:49 -04:00
Rapptz 580b4baef9 Fix view_audit_log incorrect pluralisation. 2017-04-08 18:05:46 -04:00
Rapptz bf2066278e Add support for multiple file attachments.
This is a breaking change. No longer does Messageable.send have a
filename keyword argument, instead this is all handled through the
discord.File model. To upload many files you must specify a list
of discord.File objects.
2017-04-08 03:33:21 -04:00
Rapptz e5c5695399 Proper recursion when launching shards. 2017-04-07 23:23:48 -04:00
Rapptz bcfb31779d Fix KeyError in certain logging cases. 2017-04-07 23:22:44 -04:00
Rapptz ff95258710 Use an asyncio.Event instead of an asyncio.Lock for global rate limits.
There were some dead-locking issues that I suspect were due to the
way the global rate limit was handled. This changes it into a simple
Event that allows multiple coroutines to pass through instead of one
by one.
2017-04-01 23:31:32 -04:00
Rapptz af0ba17885 Proper termination of HistoryIterator.flatten. 2017-03-30 03:27:44 -04:00