Commit Graph

613 Commits

Author SHA1 Message Date
4160cd7d12 Set closed state before actually finishing cleaning up. 2017-03-24 20:40:23 -04:00
9885a946e1 More robust cleanup for Client.run.
This should prevent asyncio.CancelledError from being propagated more
and suppressed "Task was destroyed but was pending!" warnings when
doing graceful closes outside of using a KeyboardInterrupt.

To make clean up a bit more robust, also add signal handlers
for POSIX systems.
2017-03-24 20:27:30 -04:00
5461bfb475 Check if we're closed before attempting to do a reconnect. 2017-03-21 03:32:09 -04:00
c90e52450a Reconnect on any OSError. 2017-03-20 15:45:44 -04:00
df0f1bfbdf Fix Client inability to shard by actually propagating the shard_id 2017-03-16 05:51:11 -04:00
058f1f13eb Fix premium key being missing in profile endpoint. 2017-03-13 00:26:43 -04:00
d87d4e716f Retry on more exceptions in auto reconnect code. 2017-03-07 01:12:28 -05:00
aa41101237 Remove Client.accept_invite 2017-03-04 20:42:21 -05:00
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
9d4f3ebb43 Miscellaneous documentation fixes in Client.wait_for 2017-02-23 22:19:07 -05:00
e16a1e583e Remove Client.email attribute.
Use ClientUser.email instead.
2017-02-23 22:13:45 -05:00
b7488d7c6e Reconnect when a task times out and propagates. 2017-02-19 17:44:27 -05:00
58fa5fdc9a Add experimental reconnection logic. 2017-02-15 19:10:32 -05:00
8727472b85 Add Client.get_user_profile to get an arbitrary user's profile. 2017-02-10 17:07:08 -05:00
0dac5e3139 Add Client.emojis to get all emojis.
This removes the older get_all_emojis generator.
2017-02-10 16:43:33 -05:00
c16a515e50 Fix NameError in Client.get_invite 2017-02-10 00:22:14 -05:00
274e6af0dd Fix support for instant invites. 2017-02-08 22:47:52 -05:00
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
e77012f4d9 Make all public is_ functions into methods instead of properties. 2017-01-29 20:53:17 -05:00
8c896e9fbc Re-add Client.wait_until_ready 2017-01-29 20:33:48 -05:00
e5cb7d295c Replace wait_for_* with a generic Client.wait_for 2017-01-25 22:26:49 -05:00
b876133e87 Add compatibility shim for asyncio.Future creation.
Should provide better support for uvloop.
2017-01-25 21:38:50 -05:00
62f43889c0 Remove unused ChannelPermissions namedtuple. 2017-01-25 05:58:15 -05:00
c80cbf1931 Remove Client.__getattr__ and Client.__setattr__ shims.
We should use properties instead.
2017-01-25 05:50:35 -05:00
234fd5180f Optimise attribute access when dispatching. 2017-01-25 05:31:53 -05:00
e1aaf74fa7 Add option to disable auto member chunking. 2017-01-23 07:07:42 -05:00
1ffb2ca7ac Allow unique invites for Client.create_invite. 2017-01-21 16:23:14 -05:00
ff9f5749e1 Update copyright year to 2017. 2017-01-20 23:19:19 -05:00
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
4b6b5bd35e Remove email/password based login. 2017-01-19 18:32:17 -05:00
33450cd1b6 Fix documentation to properly use Messageable.send 2017-01-13 20:35:44 -05:00
92c1637921 Allow overriding the shard_ids used for initial shard launch. 2017-01-08 02:05:21 -05:00
4bc6625739 Add AutoShardedClient.change_presence. 2017-01-08 01:51:10 -05:00
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
808a05ff2d Move global user cache to a WeakValueDictionary. 2017-01-04 05:16:59 -05:00
98b981848d Move message creation to a factory method inside ConnectionState. 2017-01-03 09:52:10 -05:00
5e6bfecb07 Move away from StateContext and use ConnectionState directly. 2017-01-03 09:52:10 -05:00
633eacc982 Add permission overwrites to GuildChannel. 2017-01-03 09:52:08 -05:00
a557858742 Remove chunks of the voice code to redesign later. 2017-01-03 09:52:07 -05:00
79a49f9145 Absolute import some circular dependencies to appease Python 3.4. 2017-01-03 09:52:02 -05:00
30394d03f2 Remove no longer used functions in Client. 2017-01-03 09:52:00 -05:00
2c50c18ca3 Change dict value views into lists. 2017-01-03 09:51:59 -05:00
59a0df5f98 Rename try_insert_user to store_user 2017-01-03 09:51:56 -05:00
d1d54a468a Rename Server to Guild everywhere. 2017-01-03 09:51:54 -05:00
53ab263125 Split channel types.
This splits them into the following:

* DMChannel
* GroupChannel
* VoiceChannel
* TextChannel

This also makes the channels "stateful".
2017-01-03 09:51:52 -05:00
044b0824e6 Begin working on the rewrite. 2017-01-03 09:51:47 -05:00
bed2e90e82 Properly propagate loop. Fixes #420. 2016-12-21 00:06:19 -05:00
6302ef8094 Add support for partnered servers. Fixes #387.
This commit allows you to edit a server's invite splash, query if
something has partnered features, and retrieve the invite splash + URL.
2016-12-17 13:34:19 -05:00
51fda76555 Fix typo in wait_for_reaction documentation. 2016-12-07 07:23:12 -05:00
44624b7f44 Documentation fixes. 2016-11-17 20:42:06 -05:00