Commit Graph

1118 Commits

Author SHA1 Message Date
ba2dad2093 Add support for setting and retrieving guild vanity invites. 2017-04-30 07:17:00 -04:00
86b9099f3a Changed audit_log to audit_logs in documentation 2017-04-30 12:56:58 +02:00
c54a6a927d Implement audit logs. 2017-04-30 02:58:27 -04:00
3f45db5c3b Better TextChannel.is_nsfw() check. 2017-04-30 02:53:33 -04:00
10453d6718 Add Client.get_emoji to get an Emoji from an ID. 2017-04-30 02:53:05 -04:00
d3a86a5fb6 Add TextChannel.is_nsfw method to check for NSFW channels. 2017-04-26 21:02:30 -04:00
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
37681dd0ea [commands] Fix lack of space in when_mentioned 2017-04-24 00:23:23 -04:00
6188397fc9 [commands] Add Context.voice_client shortcut. 2017-04-24 00:17:04 -04:00
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
e445fa9335 Wait 5 seconds before attempting to RESUME during INVALIDATE_SESSION. 2017-04-22 21:34:56 -04:00
1519a6fefa Fix some linting errors. 2017-04-22 04:50:31 -04:00
c30ab8a3e5 Fix NameError in Role.edit when moving roles. 2017-04-22 04:47:43 -04:00
0ce781b37c Fix NameError in GuildChannel.changed_roles 2017-04-22 04:44:21 -04:00
3cfebc4605 Timeout when doing initial connection. 2017-04-22 02:18:35 -04:00
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
b05d8790fc Allow using Reaction objects while adding or removing reactions. 2017-04-21 17:32:09 -04:00
83649d7f0a Support for new member message types. 2017-04-21 03:49:05 -04:00
34c60002bf Allow setting a default volume in PCMVolumeTransformer. 2017-04-19 17:33:16 -04:00
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
07d5328873 Add VoiceClient.is_paused to query pause state. 2017-04-19 16:06:45 -04:00
55e63ed87f Add VoiceClient.source to get the AudioSource being played. 2017-04-19 01:19:39 -04:00
efd6d11e9a Fix static cut-off when playing. 2017-04-18 22:20:40 -04:00
aa32c384ea Clean cache when TimeoutError occurs. 2017-04-18 20:13:34 -04:00
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
b4bc4dfd12 Fix FFmpegPCMAudio not working with spaces in filename. 2017-04-18 16:05:32 -04:00
1fc08bc5a2 Remove unused imports. 2017-04-18 04:22:35 -04:00
d534a0989e Properly cleanup of VoiceClients in cache. 2017-04-18 04:09:33 -04:00
65bd510df6 Add Guild.voice_client shortcut. 2017-04-18 04:07:05 -04:00
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
38fd0928df Don't clear state when READY is reached for auto sharded clients. 2017-04-16 02:32:23 -04:00
3983eb3ba5 Support for API v7 error handling. 2017-04-15 19:55:51 -04:00
22150b20b6 Start typing immediately when using async typing context manager. 2017-04-12 21:26:23 -04:00
0e5bf09021 Export missing enums. 2017-04-12 20:20:35 -04:00
728fae9285 Add Guild.explicit_content_filter. 2017-04-12 20:18:28 -04:00
cadf6960b7 Use create_future wrapper for initially created Future. 2017-04-12 19:55:01 -04:00
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
3e15f46dcf [commands] Bot.get_all_emojis no longer exists. 2017-04-12 05:00:50 -04:00
7da0884bfb [commands] Export missing built-in converters. 2017-04-12 04:46:53 -04:00
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
580b4baef9 Fix view_audit_log incorrect pluralisation. 2017-04-08 18:05:46 -04:00
e52532c06e Fix File not using the filename if given 2017-04-08 13:31:40 -04:00
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
e5c5695399 Proper recursion when launching shards. 2017-04-07 23:23:48 -04:00
bcfb31779d Fix KeyError in certain logging cases. 2017-04-07 23:22:44 -04:00
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
af0ba17885 Proper termination of HistoryIterator.flatten. 2017-03-30 03:27:44 -04:00
7f58853e3a Keep track of Emoji instances myself.
WeakValueDictionary cleans up too late and brings too little benefit.
Also clean up the state when the first READY is encountered for
AutoShardedClient and when any READY is encountered in regular Client.
2017-03-29 04:36:06 -04:00
e1c32626ba [commands] Fix User converter not working with IDs. 2017-03-27 20:08:26 -04:00
5c5e7ae1d6 [commands] Add is_owner check and Bot.is_owner. 2017-03-27 06:55:21 -04:00