Commit Graph
339 Commits
Author SHA1 Message Date
Rapptz 4aecdea052 Make TextChannel.create_webhook name parameter mandatory. 2018-07-20 04:17:28 -04:00
Rapptz f25091efe1 Drop support for Python 3.4 and make minimum version 3.5.2. 2018-06-10 18:10:00 -04:00
slice 9fe7776a33 Add support for getting individual ban entries 2018-05-07 16:42:04 -07:00
Rapptz 6782fdd34d Add missing coroutine decorator to HTTPClient.get_attachment
Fixes #1104
2018-02-26 18:55:05 -05:00
Rapptz da9828c41f Use the proper endpoint for removing your own reaction. 2017-12-21 19:20:48 -05:00
Rapptz 5c5a59c18e Add Client.clear to clear the bot's internal state to a clean slate.
In case you want to have some external restart loop.
2017-12-16 21:36:39 -05:00
Rapptz f0c53e4519 Fix URI quoting in Route. 2017-10-24 00:50:20 -04:00
Gorialis 6fc2b51dea Quote all Route params 2017-10-20 05:57:33 +09:00
Rapptz 47a58d354d Reimplement zlib streaming.
This time with less bugs. It turned out that the crash was due to a
synchronisation issue between the pending reads and the actual shard
polling mechanism.

Essentially the pending reads would be cancelled via a simple bool but
there would still be a pass left and thus we would have a single
pending read left before or after running the polling mechanism and
this would cause a race condition.

Now the pending read mechanism is properly waited for before returning
control back to the caller.
2017-10-14 21:19:46 -04:00
Rapptz 92a37c2e4f Revert "Implement zlib streaming for the gateway."
This reverts commit 462191a08b.
2017-10-14 15:22:39 -04:00
Rapptz 462191a08b Implement zlib streaming for the gateway. 2017-10-12 22:53:20 -04:00
Rapptz 065f408a10 Move pre-emptive message to DEBUG log level. 2017-10-01 13:43:20 -04:00
Rapptz 711dfb83ab Allow creating a channel with a category. 2017-09-29 05:54:29 -04:00
Rapptz f86ac47b28 Don't use Bulk Channel Edit endpoint if not actually moving channels.
Should make the category-only edit cases more straightforward since
it does not rely on other guilds in the cache, outside of the category
itself.
2017-09-24 04:55:10 -04:00
Harmon 91e2163523 Fix typo in http.create_channel 2017-09-13 18:05:09 -05:00
Rapptz 53b4890435 Add category support.
This adds:

* CategoryChannel, which represents a category
* Guild.by_category() which traverses the channels grouping by category
* Guild.categories to get a list of categories
* abc.GuildChannel.category to get the category a channel belongs to
* sync_permissions keyword argument to abc.GuildChannel.edit to sync
  permissions with a pre-existing or new category
* category keyword argument to abc.GuildChannel.edit to move a channel
  to a category
2017-09-13 09:44:36 -04:00
Rapptz 63bca6604b Manually format reason parameter for kick and ban.
Related to: https://github.com/aio-libs/aiohttp/issues/2235
2017-08-30 17:58:53 -04:00
Rapptz 37b0fdb898 Add webhook support.
Allows for usage of either `requests` and `aiohttp` when used in
"Standalone" mode.

Fixes #704
2017-08-21 01:57:07 -04:00
Rapptz 13c6a0a17a Add support for Guild.system_channel 2017-08-17 18:14:52 -04:00
PapyrusThePlant 0d21e83b7f Fix the proxy support for aiohttp>=1.4. 2017-08-11 16:44:15 +02:00
khazhyk 62cdfbdbcd Raise in HTTPClient.request when out of retries
Raise after loop completes without returning with most recent values
for r, data. This is a bit less fragile than checking tries < 4, since
changing the retry count requires changing values in multiple places.
(There seemed to already be handling in the 502 retry, tries <= 5,
which always evaluated to true, e.g.)
Previously, once out of retries, we would always return None without
raising.
This won't NameError so long as we make at least one HTTP request.
2017-07-22 20:10:28 -07:00
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