68 Commits

Author SHA1 Message Date
khazhyk
2850995062 Retry on 500 in HTTPClient.request
Discord official client retries on 500, so worst case scenario, we're
not any worse than the official client which seriously outnumbers us.
2017-07-22 20:10:25 -07:00
Rapptz
6e0902ef57 Implement new-style NSFW channels.
No idea how these will change in the future but this is barebones
enough for now.
2017-07-18 16:36:26 -04:00
Rapptz
851d4ce22a Properly quote reason header so non-ASCII works in audit log reasons. 2017-06-17 01:04:38 -04:00
Rapptz
b06899e7d4 Defer logging formatting until the logger is actually called.
This would cause unnecessary format calls even if you didn't have
logging enabled.
2017-06-09 18:53:24 -04:00
Rapptz
3330a19f35 Support for sending a nonce. 2017-05-31 07:34:59 -04:00
Rapptz
8d3279b291 Implement an Attachment model. 2017-05-30 22:27:45 -04:00
Rapptz
d21fb780fd Remove unused functions in HTTPClient. 2017-05-30 20:00:46 -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
fac43ad595 Fix NameError in HTTPClient.kick 2017-05-02 20:14:40 -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
3983eb3ba5 Support for API v7 error handling. 2017-04-15 19:55:51 -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
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
4ffded622a Removing acking on channels. 2017-03-18 11:52:18 -04:00
Rapptz
76e76f2905 Add underscore to HTTPClient.session to imply privateness. 2017-03-04 23:27:57 -05:00
Rapptz
aa41101237 Remove Client.accept_invite 2017-03-04 20:42:21 -05:00
Rapptz
8daf411c72 Add Messageable.ack 2017-02-28 00:47:37 -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
ca81f0c3fc Better group DM support. 2017-02-09 20:50:02 -05:00
Rapptz
8c581bc5bd Removed unused variables in routes. 2017-02-09 02:44:45 -05:00
Rapptz
0311b407c3 Remove unused constants in HTTPClient 2017-02-08 20:44:35 -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
b27fab09eb Allow removing an embed in Message.edit 2017-01-29 20:32:24 -05:00
Rapptz
02f30f21c4 Implement User.profile coroutine to get a user's profile. 2017-01-24 22:00:27 -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
4b6b5bd35e Remove email/password based login. 2017-01-19 18:32:17 -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
92dd519b1a Remove _get_guild_id from Messageable ABC. 2017-01-14 19:22:26 -05:00
Rapptz
ced617e786 Use the improved role creation endpoint for making roles. 2017-01-13 01:30:09 -05:00
Rapptz
c8247371f1 Fix 404s in pins_from and create_role routes. 2017-01-12 18:05:46 -05:00
Rapptz
94448d3972 Fix NameError inside HTTPClient.edit_member. 2017-01-09 21:30:59 -05:00
Rapptz
b86a568f86 Fix HTTP.application_info 404ing. 2017-01-09 20:58:58 -05:00
Rapptz
6d33ea748a Implement rate limit headers. 2017-01-09 18:51:24 -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
98b981848d Move message creation to a factory method inside ConnectionState. 2017-01-03 09:52:10 -05:00
Rapptz
79a49f9145 Absolute import some circular dependencies to appease Python 3.4. 2017-01-03 09:52:02 -05:00
Rapptz
a1c81419b7 Rename MessageChannel.send_message to send and unify interface.
This removes MessageChannel.upload.
2017-01-03 09:52:01 -05:00
Rapptz
5cb3ad14e8 Make emojis and members stateful. 2017-01-03 09:51:55 -05:00
Rapptz
d1d54a468a Rename Server to Guild everywhere. 2017-01-03 09:51:54 -05:00
Rapptz
bed2e90e82 Properly propagate loop. Fixes #420. 2016-12-21 00:06:19 -05:00
Rapptz
e8905fd41b Add missing bucket for endpoints. 2016-11-17 21:07:54 -05:00
Rapptz
18178c26aa Add support for clearing a message's reactions. 2016-11-17 20:37:33 -05:00
Rapptz
4c1fd2c9b1 Add atomic add and remove role endpoints to HTTPClient.
These are currently unused since their use is pretty limited.
2016-11-17 20:27:43 -05:00
Rapptz
a312f21bc3 Support message editing with rich embeds. 2016-11-13 22:12:16 -05:00
Rapptz
af46718460 Add support for rich embeds. 2016-11-13 05:07:58 -05:00
Rapptz
ae796e0d01 Change buckets for reactions. 2016-11-06 01:03:57 -04:00