Commit Graph
100 Commits
Author SHA1 Message Date
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
Rapptz 1e09432c45 Update examples to use the new generic wait_for. 2017-01-26 04:30:47 -05:00
Rapptz e5cb7d295c Replace wait_for_* with a generic Client.wait_for 2017-01-25 22:26:49 -05:00
Rapptz b876133e87 Add compatibility shim for asyncio.Future creation.
Should provide better support for uvloop.
2017-01-25 21:38:50 -05:00
Rapptz 62f43889c0 Remove unused ChannelPermissions namedtuple. 2017-01-25 05:58:15 -05:00
Rapptz c80cbf1931 Remove Client.__getattr__ and Client.__setattr__ shims.
We should use properties instead.
2017-01-25 05:50:35 -05:00
Rapptz 234fd5180f Optimise attribute access when dispatching. 2017-01-25 05:31:53 -05:00
Rapptz 02f30f21c4 Implement User.profile coroutine to get a user's profile. 2017-01-24 22:00:27 -05:00
Rapptz e1aaf74fa7 Add option to disable auto member chunking. 2017-01-23 07:07:42 -05:00
Rapptz d206ee792b Fix issue with user bots chunking unavailable guilds. 2017-01-21 16:25:51 -05:00
Rapptz 1ffb2ca7ac Allow unique invites for Client.create_invite. 2017-01-21 16:23:14 -05:00
Rapptz ff9f5749e1 Update copyright year to 2017. 2017-01-20 23:19:19 -05:00
Rapptz 4c981ee631 Add support for relationships. 2017-01-20 19:28:43 -05:00
Rapptz e2acf7b2b9 Add ClientUser.premium boolean. 2017-01-20 15:01:10 -05:00
Rapptz fa384f2114 Make ClientUser separate from a regular User.
This removes Client.edit_profile in favour of ClientUser.edit.
2017-01-19 19:37:11 -05:00
Rapptz 4b6b5bd35e Remove email/password based login. 2017-01-19 18:32:17 -05:00
Rapptz f465f88d81 Reimplement Guild.me property without patching it in. 2017-01-18 19:54:47 -05:00
Rapptz f4cadaf0cc Fix bug with GuildChannel.edit and Role.edit with positions.
I did not update the HTTP code for these two methods.
2017-01-16 18:19:18 -05:00
Rapptz 898a05d5ea Fix AutoShardedClient docstring. 2017-01-16 16:37:53 -05:00
Rapptz ea72d5e63d [commands] Guarantee that local error handler is called before generic. 2017-01-15 21:55:50 -05:00
Rapptz 11b54d67c9 [commands] Change UserConverter to actually work with User, not Member. 2017-01-14 22:15:02 -05:00
Rapptz 92dd519b1a Remove _get_guild_id from Messageable ABC. 2017-01-14 19:22:26 -05:00
Rapptz ce9d5b4f4a [commands] Split process_commands into lower level bits. 2017-01-14 19:17:08 -05:00
Rapptz 87dc2f4dd3 Show inherited members in the docs for User and Member. 2017-01-13 20:46:23 -05:00
Rapptz 33450cd1b6 Fix documentation to properly use Messageable.send 2017-01-13 20:35:44 -05:00
Rapptz 695b62ccd3 [commands] Make Command a descriptor for #426. 2017-01-13 20:34:00 -05:00
Rapptz ced617e786 Use the improved role creation endpoint for making roles. 2017-01-13 01:30:09 -05:00
Rapptz 6d3a5eaeb6 Remove extraneous kwargs from Permissions constructor. 2017-01-13 01:27:16 -05:00
Rapptz c8247371f1 Fix 404s in pins_from and create_role routes. 2017-01-12 18:05:46 -05:00
Rapptz ae6fb54b1b Make Reaction.users return an async iterator. 2017-01-11 21:20:28 -05:00
Rapptz b9b9d8c4d0 Fix NameError inside Messageable.get_message 2017-01-11 20:26:06 -05:00
Rapptz 06ca518459 Rename NoMoreMessages to NoMoreItems. 2017-01-11 19:53:48 -05:00
Rapptz 8c274139df Allow HistoryIterator to be flattened into a list. 2017-01-11 19:04:52 -05:00
Rapptz 0e0b569d53 Propagate event loop in Messageable.history. 2017-01-11 13:24:28 -05:00
Rapptz 7e2c016eaa Remove extraneous unneeded hash calls. 2017-01-10 04:37:45 -05:00
Rapptz 94448d3972 Fix NameError inside HTTPClient.edit_member. 2017-01-09 21:30:59 -05:00
Rapptz 3c6d677f85 Update README example. 2017-01-09 21:25:03 -05:00
Rapptz b86a568f86 Fix HTTP.application_info 404ing. 2017-01-09 20:58:58 -05:00
Rapptz f877efdd89 Change version info to 1.0.0a0. 2017-01-09 20:52:11 -05:00
Rapptz 6d33ea748a Implement rate limit headers. 2017-01-09 18:51:24 -05:00
Rapptz 6adfd633ea Allow Messageable.send to work with non-truthy types. 2017-01-09 09:50:14 -05:00
Rapptz b09f25293b Use CDN URL for Guild.icon_url. 2017-01-09 03:43:51 -05:00
Rapptz 36a5925908 Return default avatar URL if an avatar is not given for User.avatar_url
Also use the CDN URL like Jake has always requested.
2017-01-09 03:41:01 -05:00
Rapptz 63604e0566 Use CDN URL for default avatars. 2017-01-09 03:35:51 -05:00
Rapptz 5e201be792 Fix typo in Guild.invites 2017-01-09 03:13:57 -05:00
Rapptz 3780943d0a Add Guild.create_text_channel and Guild.create_voice_channel. 2017-01-08 17:09:56 -05:00
Rapptz d13df30e2a Add ability to edit guild invite splashes. 2017-01-08 07:24:56 -05:00
Rapptz d22d8cc430 [commands] Add AutoShardedBot counterpart to AutoShardedClient. 2017-01-08 04:50:59 -05:00
Rapptz aae8b783e9 VoiceChannel.voice_members is now computed when needed. 2017-01-08 04:31:33 -05:00
Rapptz 4bd8382e06 Fix bug that caused Guild instances to be in VoiceChannel.voice_members 2017-01-08 03:46:43 -05:00
Rapptz 93d267cd2b Remove extraneous prints. 2017-01-08 02:08:38 -05:00
Rapptz 92c1637921 Allow overriding the shard_ids used for initial shard launch. 2017-01-08 02:05:21 -05:00
Rapptz 4bc6625739 Add AutoShardedClient.change_presence. 2017-01-08 01:51:10 -05:00
Rapptz b5bed9ef33 Change the way shards are launched in AutoShardedClient. 2017-01-08 01:31:46 -05:00
Rapptz d93067ca0f Add Guild.chunked property. 2017-01-08 01:28:15 -05:00
Rapptz 20041ea756 Implement AutoShardedClient for transparent sharding.
This allows people to run their >2,500 guild bot in a single process
without the headaches of IPC/RPC or much difficulty.
2017-01-07 23:19:39 -05:00
Rapptz d54d7f7ac0 Fix variable shadowing in READY parsing. 2017-01-05 07:03:56 -05:00
Rapptz 808a05ff2d Move global user cache to a WeakValueDictionary. 2017-01-04 05:16:59 -05:00
Rapptz f8a5d890fe Update examples to match the new rewrite API. 2017-01-03 20:58:11 -05:00
Rapptz 94655c77c0 Fix Messageable.typing context manager. 2017-01-03 20:24:42 -05:00