Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 9fcbe5c678 Sort Guild.text_channels and Guild.voice_channels in UI order. 2017-03-23 19:34:36 -04:00
Rapptz 959c60543d Upgrade aiohttp requirement to 2.0.
Apparently this doesn't cause any issues with the existing code as-is.
I suspect the real issue will be with people's third party code.
2017-03-23 17:47:24 -04:00
Rapptz 730a0e2d53 Reference the ConnectionState by weakref instead of a strong reference.
Hopefully this means when the bot has some lingering object for
whatever reason, the memory doesn't double due to it having a strong
reference to an outdated connection state.
2017-03-22 00:02:50 -04:00
Rapptz 8a34c412ed Add Permissions.view_audit_log 2017-03-21 19:39:06 -04:00
Rapptz 31a7093433 [commands] Fix minor spacing issue in Command.signature 2017-03-21 15:36:52 -04:00
Rapptz fd62c8a4f1 Aggregate shard closing futures instead of doing them sequentially. 2017-03-21 03:52:24 -04:00
Rapptz 5461bfb475 Check if we're closed before attempting to do a reconnect. 2017-03-21 03:32:09 -04:00
Rapptz a0cdb19c5f Eventual consistency fixes. 2017-03-21 03:16:30 -04:00
Rapptz 3087600c8d [commands] Add Command.signature
This replaces HelpFormatter.get_command_signature for the most part.
2017-03-21 00:46:13 -04:00
Rapptz 54fdafb792 [commands] Add BotBase.get_cog_commands to get all a cog's commands.
Self-explanatory. This should help create help commands for a cog
more easily.
2017-03-21 00:46:12 -04:00
Rapptz fe588a4d52 [commands] Change GroupMixin.commands to all_commands
This is a breaking change as GroupMixin.commands now returns a set
of unique Command objects.
2017-03-21 00:46:12 -04:00
Rapptz c90e52450a Reconnect on any OSError. 2017-03-20 15:45:44 -04:00
Rapptz 4ffded622a Removing acking on channels. 2017-03-18 11:52:18 -04:00
Rapptz df0f1bfbdf Fix Client inability to shard by actually propagating the shard_id 2017-03-16 05:51:11 -04:00
Rapptz 0321558dec Handle case when guild owner somehow doesn't exist in permissions_for 2017-03-15 23:13:28 -04:00
Rapptz 51b0baeb9d Speed up message update handling.
Apparently, checking if something is not None and then calling it is
faster than having an identity function that will just return the
original value untransformed, such as a lambda or doing a str(str) call
2017-03-14 19:12:30 -04:00
Rapptz c089aa199b Remove Message.edited_timestamp in favour of Message.edited_at 2017-03-14 19:07:08 -04:00
Rapptz 1239e88d05 Handle aware datetimes in embeds. 2017-03-13 17:47:46 -04:00
Rapptz 9c6d9f1a84 Remove call handling for now. 2017-03-13 17:07:33 -04:00
Rapptz 058f1f13eb Fix premium key being missing in profile endpoint. 2017-03-13 00:26:43 -04:00
Rapptz d87d4e716f Retry on more exceptions in auto reconnect code. 2017-03-07 01:12:28 -05:00
Rapptz ead18e3948 Fix issue with members not copying correctly. 2017-03-05 07:48:15 -05:00
Rapptz 96a43fa9e3 Fix NameError in Role.edit 2017-03-05 06:48:18 -05:00
Rapptz 76e76f2905 Add underscore to HTTPClient.session to imply privateness. 2017-03-04 23:27:57 -05:00
Rapptz c4c17351c6 Add commit number to pip version for easy identification. 2017-03-04 20:43:05 -05:00
Rapptz aa41101237 Remove Client.accept_invite 2017-03-04 20:42:21 -05:00
Rapptz 98cfb53d3b [commands] Add Context.me property. 2017-03-01 18:58:56 -05:00
Rapptz 5ce88c8a3f Reconnect even if we close with 1000 since Discord can send it.
Rely on is_closed() instead since this is the true metric of a clean
closure.
2017-03-01 05:10:01 -05:00
Rapptz e78a5c0643 Remove remaining voice_member tracking. 2017-02-28 18:29:27 -05:00
Rapptz 39d65305a3 Add TextChannel.members to get members that can see a channel. 2017-02-28 17:42:07 -05:00
Rapptz cf40e94af6 Rename VoiceChannel.voice_members to VoiceChannel.members 2017-02-28 17:40:17 -05:00
Rapptz aa59762c04 Remove extra space. 2017-02-28 17:39:59 -05:00
Rapptz 8daf411c72 Add Messageable.ack 2017-02-28 00:47:37 -05:00
Rapptz f7524c9919 Add User.is_blocked and User.is_friend shortcut methods. 2017-02-27 23:29:52 -05:00
Rapptz 9a1215e13b Add support for message acking. 2017-02-27 23:29:52 -05:00
Rapptz 751933f068 Remove nonce when sending messages. 2017-02-27 18:02:07 -05:00
Rapptz cbbc75cd8d Move purge and delete_messages from Messageable.
This is a breaking change. Move these two to TextChannel since the
other things that implement Messageable cannot reliably do bulk delete
actions in their respective channels.
2017-02-26 21:16:20 -05:00
Rapptz f6fcb62c7b Check for PrivateChannel before GuildChannel in Client.get_channel 2017-02-25 20:56:09 -05:00
Rapptz 29f676c42e Wrap asyncio.wait into a saner alternative that raises TimeoutError.
Fixes #494
2017-02-25 00:03:43 -05:00
Rapptz b2ffeac297 Make Guild.large a property instead of an attribute. 2017-02-24 17:51:27 -05:00
Rapptz 1b3234ab64 Add info logging for close codes we cannot handle. 2017-02-24 17:23:46 -05:00
Rapptz 9d4f3ebb43 Miscellaneous documentation fixes in Client.wait_for 2017-02-23 22:19:07 -05:00
Rapptz e16a1e583e Remove Client.email attribute.
Use ClientUser.email instead.
2017-02-23 22:13:45 -05:00
Rapptz 0e8b260d45 Fall back to single message delete in Messageable.purge
Also make it work on user accounts.

Fixes #456.
2017-02-23 00:23:40 -05:00
Rapptz 2fe5da836c Add User.avatar_url_as to convert a user's avatar. 2017-02-22 23:17:52 -05:00
Rapptz 9cb89f019e [commands] Register cog listeners with the name of the attribute. 2017-02-22 20:11:01 -05:00
Rapptz 67912193ec Forward keyword arguments in Member.ban 2017-02-21 08:38:33 -05:00
Rapptz b8727fd463 Fix Client.emojis returning a list of IDs. 2017-02-21 08:38:06 -05:00
Rapptz 702d596af9 Check that the type in Colour and Permissions are int. 2017-02-21 08:19:32 -05:00
Rapptz b7488d7c6e Reconnect when a task times out and propagates. 2017-02-19 17:44:27 -05:00
Rapptz c6d26216a6 [commands] Fix bad logic in command list filtering. 2017-02-18 02:39:03 -05:00
Rapptz 54f297c24f Fix NameError in GuildChannel.overwrites_for 2017-02-17 22:10:12 -05:00
Rapptz 6516932e67 Fix Guild.bans to return a BanEntry object. 2017-02-16 16:13:20 -05:00
Rapptz 58fa5fdc9a Add experimental reconnection logic. 2017-02-15 19:10:32 -05:00
Rapptz a6b180b5ad Don't RESUME when given sharding related close codes. 2017-02-15 17:58:57 -05:00
Rapptz bb8f5f4725 Make discord.ext a namespace package. 2017-02-14 21:35:52 -05:00
Rapptz 132ac45010 Ensure after is called inside the daemon thread for players. 2017-02-14 02:10:07 -05:00
Rapptz 6166cbc2e7 [commands] Add commands.clean_content converter. 2017-02-13 22:15:39 -05:00
Rapptz c8250d7cd5 Fix bug with Message.role_mentions always being empty. 2017-02-13 22:14:49 -05:00
Rapptz e10cae5dbc [commands] Allow converters to be instantiated.
This allows for you to create converters that can have varying
behaviour using the converter's __init__ instead of having to do a
meta-class based approach to get around the fact that __init__ is part
of the interface.

To make up for the lack of __init__, a new method Converter.prepare was
added to do the work that __init__ used to do.
2017-02-13 21:05:25 -05:00
Rapptz dcf826c09b Allow utils.maybe_coroutine to take any arguments. 2017-02-13 20:58:14 -05:00
Rapptz 8e654bd52a Add support for limit=None in Messageable.history.
Fixes #480.
2017-02-13 19:55:04 -05:00
Rapptz b6bff5172a [commands] Remove Commands: if no commands can be run in help command. 2017-02-13 04:27:31 -05:00
Rapptz 1ec7daf372 Documentation fixes for permission. 2017-02-13 02:44:29 -05:00
Rapptz bf11bb4b4f [commands] Add cog local error handlers via __error. 2017-02-12 15:48:18 -05:00
Rapptz 7bc3750c27 [commands] Add param attribute to MissingRequiredArgument
This should allow easier querying on what argument is missing.

Fixes #470.
2017-02-12 13:53:49 -05:00
Rapptz 47ef657fbd Implement async checks. Fixes #380. 2017-02-12 12:13:23 -05:00
Rapptz 2abdbc70c2 Implement utilities for AsyncIterator.
Closes #473.
2017-02-11 23:34:19 -05:00
Rapptz 8727472b85 Add Client.get_user_profile to get an arbitrary user's profile. 2017-02-10 17:07:08 -05:00
Rapptz 0dac5e3139 Add Client.emojis to get all emojis.
This removes the older get_all_emojis generator.
2017-02-10 16:43:33 -05:00
Rapptz ae36008279 Fix NameError in GroupChannel. 2017-02-10 15:42:52 -05:00
Rapptz bfe2b4fc03 Fix Member.display_name to work. 2017-02-10 03:10:30 -05:00
Rapptz c16a515e50 Fix NameError in Client.get_invite 2017-02-10 00:22:14 -05:00
Rapptz ca81f0c3fc Better group DM support. 2017-02-09 20:50:02 -05:00
Rapptz 926f01f0b6 Call message edit handlers after attempting to patch individual fields 2017-02-09 06:29:57 -05:00
Rapptz 8c581bc5bd Removed unused variables in routes. 2017-02-09 02:44:45 -05:00
Rapptz 3504de4635 Fix more places where server is used instead of guild in docstrings. 2017-02-08 22:51:40 -05:00
Rapptz 274e6af0dd Fix support for instant invites. 2017-02-08 22:47:52 -05:00
Rapptz 0311b407c3 Remove unused constants in HTTPClient 2017-02-08 20:44:35 -05:00
Rapptz ced064d08c Add missing continue statement in gateway futures. 2017-02-08 20:30:09 -05:00
Rapptz ecab8399ff Handle HEARTBEAT_ACK 2017-02-08 07:23:09 -05:00
Rapptz dc486980f8 Rewrite RESUME logic to be more in line with what is requested.
Apparently we should always try to RESUME first and if we get
INVALIDATE_SESSION then we should IDENTIFY instead. This is the
preferred way to do RESUMEs.
2017-02-08 04:37:16 -05:00
Rapptz f5b455c119 Only defer the lock if we're pre-emptively rate limiting.
If a 429 was already hit somehow then we're no longer pre-emptively
rate limiting and we're going to end up having a race condition in
the lock/unlock cycle.
2017-02-08 03:47:35 -05:00
Rapptz f8d19ae7ba [commands] Better support for retrieving children commands.
* GroupMixin.get_command now supports fully qualified names
* Add GroupMixin.walk_commands to get an iterator of all commands.
2017-02-06 21:04:33 -05:00
Rapptz aac769eb56 [commands] Fix converters returning the wrong types when an ID is passed 2017-01-31 04:57:13 -05:00
Rapptz a632bdd871 Fix Member.permissions_in passing in the wrong self parameter. 2017-01-31 04:53:54 -05:00
Rapptz 5422655a86 Fix parsing of Invite.user 2017-01-30 19:04:25 -05:00
Rapptz 3a24cda927 Faster implementation of Guild.default_channel. 2017-01-29 21:04:42 -05:00
Rapptz 81baafa1e2 Change Role.is_everyone to Role.is_default. 2017-01-29 20:59:36 -05:00
Rapptz e77012f4d9 Make all public is_ functions into methods instead of properties. 2017-01-29 20:53:17 -05:00
Rapptz 01c17704bc Remove unused Message._handle_upgrades function. 2017-01-29 20:41:53 -05:00
Rapptz 8c896e9fbc Re-add Client.wait_until_ready 2017-01-29 20:33:48 -05:00
Rapptz b27fab09eb Allow removing an embed in Message.edit 2017-01-29 20:32:24 -05:00
Rapptz 554ae196d3 Add missing int casts in many different events in the state.
Also remove redundant role parsing in Member._update_roles.
2017-01-28 08:14:43 -05:00
Rapptz 1c49374210 [commands] Implement before and after invoke command hooks.
Fixes #464.
2017-01-27 18:53:21 -05:00
Rapptz 8fa50a8f3e [commands] Add Context.command_failed attribute. 2017-01-27 17:14:22 -05:00
Rapptz 1cf7b0e2c8 Add ClientUser.friends and ClientUser.blocked 2017-01-27 00:25:04 -05:00
Rapptz 12c1cd9b14 [commands] Add cog local checks via __local_check 2017-01-26 05:49:24 -05:00
Rapptz 0e1bd1647e [commands] Rename __check to __global_check for cogs. 2017-01-26 05:31:11 -05:00
Rapptz 4016154529 [commands] Allow customising the Context class in get_context. 2017-01-26 05:05:15 -05:00