Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz bf3e0a94b8 Add changelog for v1.2.4 2019-10-17 21:01:59 -04:00
Rapptz ea3d119ca6 Use X-Ratelimit-Reset-After header by default.
There is now an option to turn it off, of course.
2019-08-27 18:41:32 -04:00
Rapptz 1c6c26ee38 Fix bucket key to not have the method in there. 2019-08-27 18:41:32 -04:00
Rapptz 078d1d71d8 Use new rate limit millisecond precision option. 2019-08-27 18:41:31 -04:00
Rapptz 5d7cf56d7f Actually add things to the message cache. 2019-08-27 18:36:40 -04:00
Rapptz 5c0b127c96 Create Permissions and Colour objects when necessary in Role
This should have some memory savings of ~24 bytes per role.

* 8 bytes for Permissions
* 8 bytes for Colour
* 8 bytes for the alias

I'm not sure how significant it is but it should be a decent amount.
2019-08-27 18:34:40 -04:00
Rapptz 2f7e875a76 Strip tokens before use.
Closes #2135
2019-08-27 04:59:17 -04:00
Rapptz cf79816c5d Allow disabling the message cache with max_messages=None
This also changes the default to 1000 instead of 5000 since it can
take some time for small bots to cycle through the default and they
make up the majority of it.
2019-08-27 04:50:50 -04:00
Rapptz 1488957a6f Add Message.is_system to more intuitively filter system messages. 2019-08-27 04:13:46 -04:00
Rapptz 3dc9f40be7 Add versionadded string to GuildChannel.permissions_synced 2019-08-27 04:06:27 -04:00
Rapptz 87c2508199 Explicitly mention discord.Object in abc.Snowflake documentation. 2019-08-11 20:12:32 -04:00
Rapptz f513d831d1 Add RawReactionActionEvent.event_type attribute.
This helps differentiate between reaction removal or addition.
2019-08-11 19:11:22 -04:00
Rapptz ceaba01776 Add version information from missing PRs. 2019-08-11 19:04:39 -04:00
Rapptz 9f822a1e6d [tasks] Add support for explicit time parameter when running.
Fixes #2159
2019-08-11 18:57:49 -04:00
Rapptz 12343c1422 Add versionadded tags to new ffmpeg related classes. 2019-07-27 23:17:06 -04:00
Rapptz 7a8c9e66d9 [tasks] Add Loop.exception for more reliable exception retrieval. 2019-07-27 23:07:48 -04:00
Rapptz 46f6003c66 Version bump for development purposes. 2019-07-27 22:42:04 -04:00
Rapptz cddcc6d6b6 abc.Messageable do not have to implement abc.Snowflake
Fix #2290
2019-07-27 22:38:30 -04:00
Rapptz dd12fbf73d [commands] Properly load the original module when reloading fails.
Fix #2291
2019-07-27 22:37:55 -04:00
Rapptz 8e594ac1ad Escape quote markdown in utils.escape_markdown 2019-07-27 22:14:14 -04:00
Rapptz 18fe2035ef Document that the cache retrieval functions require an int ID.
Closes #2285
2019-07-23 04:01:14 -04:00
Rapptz 45375364b7 Fix breakage with webhook tokens being missing. 2019-07-22 20:55:43 -04:00
Rapptz 93f719aeb7 Proper boolean check for caching members. 2019-07-15 08:26:22 -04:00
Rapptz f13c1be171 Better knowledge on how guild_subscriptions work now. 2019-07-15 08:01:57 -04:00
Rapptz 5b2f630848 Add Guild.query_members to fetch members from the gateway. 2019-07-15 07:56:48 -04:00
Rapptz bc352f0e50 Allow complete disabling of the member cache. 2019-07-11 00:49:30 -04:00
Rapptz edcd9459e3 Use Guild.owner_id in Guild.edit when checking if the bot owns a guild. 2019-07-10 14:39:12 -04:00
Rapptz 562580a07f Use lower level Guild.owner_id for permission resolution. 2019-07-10 14:30:53 -04:00
Rapptz 91f1f430e1 Fix NameError in member upgrade code 2019-07-10 06:11:03 -04:00
Rapptz ca2ee0655d Add versionadded for guild_subscriptions option. 2019-07-10 05:00:13 -04:00
Rapptz 2e6882bd8c [commands] Fall back to using Message.mentions in converters
Useful if there's no cache.
2019-07-10 04:51:27 -04:00
Rapptz bbc50c92d0 Add upgraded Member to Message.mentions in case of no cache. 2019-07-10 04:51:27 -04:00
Rapptz 5f272fa151 Add VoiceChannel.voice_states low level helper. 2019-07-10 04:51:27 -04:00
Rapptz 7b8d50a988 Add support for guild subscriptions. 2019-07-10 04:51:27 -04:00
Rapptz 5c1b239b47 Different method of upgrading user instances 2019-07-10 01:23:38 -04:00
Rapptz e75c248a9a Properly populate __slots__ for derived user types.
Fixes #2265
2019-07-09 22:51:49 -04:00
Rapptz 6f71552c50 [commands] Don't update sys.modules with a stale reference. 2019-07-07 20:17:44 -04:00
Rapptz 70e62e8fe4 Fix regression where Message.edited_at would not update during edits 2019-07-05 23:52:47 -04:00
Rapptz 4c917d10de Use the standard way of detecting RTD 2019-07-01 00:37:35 -04:00
Rapptz ac00fcad77 Flatten genindex to not group names.
Also better width in the tables.
2019-06-30 18:59:19 -04:00
Rapptz b31028fa19 Fix some linking issues with TeamMembershipState 2019-06-30 02:38:56 -04:00
Rapptz 604e9dfc67 Remove constructibility from certain classes in documentation. 2019-06-30 02:37:59 -04:00
Rapptz ccb26018ab Export Team related stuff from __init__ 2019-06-30 02:34:42 -04:00
Rapptz ba7a319ab0 Team.owner should return a TeamMember.
Should always be available but who knows.
2019-06-30 02:34:42 -04:00
Rapptz c4d1bd7899 TeamMember inherits from BaseUser instead of attribute. 2019-06-30 02:34:42 -04:00
Rapptz d4b13bd32b [commands] Fix up Paginator documentation.
These aren't optional.
2019-06-29 20:29:13 -04:00
Rapptz 0cca3ca5c6 Add support for suppressing embeds. 2019-06-29 20:26:47 -04:00
Rapptz 203d702d46 Add unused Guild.preferred_locale 2019-06-29 20:17:18 -04:00
Rapptz 2c16e43e8a Fix regression with unresolved channels due to reordering.
Channels are meant to fallback to Object if the message is out of
order. Somewhere along the commit line this got removed despite the
issue still existing.
2019-06-29 19:41:38 -04:00
Rapptz 68342db04d [commands] Properly raise the correct exception for owner_ids
Also some minor nits with documentation.
2019-06-29 19:26:45 -04:00
Rapptz d747f2c88b Use a new scorer to improve search results.
This makes the other pages take less priority than the API results.
It's kind of biased, but hopefully it helps out.
2019-06-29 02:36:26 -04:00
Rapptz c26797d808 Proper RTD detection. 2019-06-29 02:34:11 -04:00
Rapptz 1652539d40 Disable RTD search.
It's completely broken anyway.
2019-06-29 01:31:00 -04:00
Rapptz ab00bc0686 Strip discord.ext in genindex page and unbreak PEP links. 2019-06-28 21:29:43 -04:00
Rapptz acda808803 Make the generated index page more useful for Ctrl + F. 2019-06-28 21:04:43 -04:00
Rapptz db67c79dbc Downgrade to Sphinx 1.8.5
For some reason 2.1.2 breaks localization.
2019-06-28 09:00:17 -04:00
Rapptz 7523f86006 Translation sync with Crowdin 2019-06-28 08:59:21 -04:00
Rapptz a129b4bb7e Make more use of screen space in the documentation.
Basically move from a 940px system to 1200px grid system.
Hopefully future DOM modifications will make this better.
2019-06-28 02:11:22 -04:00
Rapptz 7543328fe7 Update Sphinx to 2.1.2 2019-06-28 01:43:04 -04:00
Rapptz 0cf38241d0 Version bump to 1.2.3 2019-06-25 21:50:28 -04:00
Rapptz 1e982e0042 Cast activity enumerator to integer instead of accessing value directly
Should make the library more resilient to future changes.
2019-06-25 21:50:06 -04:00
Rapptz a136def52f Translation sync from crowdin 2019-06-22 10:23:38 -04:00
Rapptz 8f691ae775 Only return exception in Client.run when it's not cancelled. 2019-06-20 23:04:38 -04:00
Rapptz b2f247bef3 Propagate exception in Client.run
Fix #2237
2019-06-20 23:00:45 -04:00
Rapptz 671a19a24a [commands] Ensure cooldowns are properly copied. 2019-06-12 23:40:43 -04:00
Rapptz e00635fba7 Version bump to 1.2.2 2019-06-09 21:51:43 -04:00
Rapptz 3730e66d37 Crowdin translation sync 2019-06-09 08:20:43 -04:00
Rapptz 855a6c5b59 Fix descriptor detection in enum code. 2019-06-09 08:13:29 -04:00
Rapptz 7980213745 Version bump to 1.2.1 2019-06-09 02:18:43 -04:00
Rapptz 2b761508f1 Disallow deleting of enum attributes. 2019-06-09 02:13:40 -04:00
Rapptz 6931189b92 Add EnumMeta.__reversed__ just in case someone does this.
I sure hope not.
2019-06-09 02:02:06 -04:00
Rapptz a92b4c2093 Add EnumMeta.__len__ to not break user avatar code. 2019-06-09 01:59:23 -04:00
Rapptz af4e3ad79b Some documentation touch-ups and missing stuff in the changelog. 2019-06-09 01:24:41 -04:00
Rapptz d7814cfb25 Remove unused import. 2019-06-09 01:06:20 -04:00
Rapptz a8f0a03247 Version bump to 1.2.0 2019-06-09 00:39:38 -04:00
Rapptz 655aa39603 Fix reference typo in SystemChannelFlags 2019-06-09 00:38:46 -04:00
Rapptz 7e2da1c93b Publicly expose a type property for all channels.
Fix #2185
2019-06-09 00:23:22 -04:00
Rapptz 991140eebe Replace Enum with an internal one for significant speed improvements.
This has been a massive pain point for me personally due to the poor
design of the Enum class leading to the common use cases used in the
library being significantly slow. Since this Enum is not public facing
in terms of *creation*, I can only implement the APIs that are used
when *accessing* them.

This Enum is a drop-in replacement to the pre-existing enum.Enum class
except it comes with significant speed-ups. Since this is a lot to go
over, I will let the numbers speak for themselves:

In [4]: %timeit enums.try_enum(enums.Status, 'offline')
263 ns ± 34.3 ns per loop (7 runs, 1000000 loops each)
In [5]: %timeit NeoStatus.try_value('offline')
134 ns ± 0.859 ns per loop (7 runs, 10000000 loops each)

In [6]: %timeit enums.Status.offline
116 ns ± 0.378 ns per loop (7 runs, 10000000 loops each)
In [7]: %timeit NeoStatus.offline
31.6 ns ± 0.327 ns per loop (7 runs, 10000000 loops each)

In [8]: %timeit enums.Status.offline.value
382 ns ± 15.2 ns per loop (7 runs, 1000000 loops each)
In [9]: %timeit NeoStatus.offline.value
65.5 ns ± 0.953 ns per loop (7 runs, 10000000 loops each)

In [10]: %timeit str(enums.Status.offline)
630 ns ± 14.8 ns per loop (7 runs, 1000000 loops each)
In [11]: %timeit str(NeoStatus.offline)
253 ns ± 3.53 ns per loop (7 runs, 1000000 loops each)

In [12]: %timeit enums.Status('offline')
697 ns ± 8.42 ns per loop (7 runs, 1000000 loops each)
In [13]: %timeit NeoStatus('offline')
182 ns ± 1.83 ns per loop (7 runs, 10000000 loops each)
2019-06-09 00:06:34 -04:00
Rapptz 8bf0482af5 Fix exception hierarchy documentation. 2019-06-08 21:23:42 -04:00
Rapptz c97b097f07 Document new Guild.features 2019-06-07 22:26:05 -04:00
Rapptz f84219c2b2 Improve performance of parsing MESSAGE_UPDATE and MESSAGE_CREATE events
Embed edits are no longer special cased in the dispatch code, which
could lead to on_message_edit being called more often than it used to
be called. I am not sure on the general impact on that being removed.

Fixes #2195
2019-06-07 22:18:01 -04:00
Rapptz 320dbc0618 Add support for system channel flags 2019-06-06 22:30:02 -04:00
Rapptz fcf02414fe Fix stray colon in Asset related docstrings 2019-06-04 19:06:31 -04:00
Rapptz 9674055c2a Add support for animated guild icons. 2019-06-04 19:04:44 -04:00
Rapptz 5dce3410e6 Add support for new message types related to premium guilds. 2019-06-04 18:30:47 -04:00
Rapptz 2b27a7a9d5 Add Member.premium_since to denote member boost date. 2019-06-04 18:30:46 -04:00
Rapptz 8e80eee0d1 Add Emoji.available field 2019-06-04 18:30:46 -04:00
Rapptz a048815c60 Add Guild.premium_subscription_count 2019-06-04 18:30:46 -04:00
Rapptz e40c68b75a Add Guild.premium_tier and corresponding limits. 2019-06-04 18:30:46 -04:00
Rapptz 90ae3f396c Probably fix indentation. 2019-05-30 19:39:50 -04:00
Rapptz bfb1edcc05 Update readthedocs.yml to v2 configuration file. 2019-05-30 19:33:14 -04:00
Rapptz 483aa5465d Properly handle compute_prune_count in prune members endpoint. 2019-05-30 18:01:03 -04:00
Rapptz 00a0856cc4 Use a dict instead of getattr for parsing events.
Probably not a significant difference but might as well use it here.
The basic idea is to cache the getattr calls instead of repeatedly
doing it (since they're around 105ns on my machine). The dictionary
lookup is about 41ns on my machine.

The next step in speeding up library code some more should be in
the parser bodies themselves but that's a problem to tackle another
day.
2019-05-29 01:22:53 -04:00
Rapptz 0622e18cb9 Speed-up utils.get for the common cases 2019-05-29 00:45:48 -04:00
Rapptz 0d72ac3bb6 Ensure message links resolve in the Messageable.pins note. 2019-05-27 04:05:51 -04:00
Rapptz 96dc6f0c11 Add note that Messageable.pins does not contain Message.reactions
Fix for #2189
2019-05-27 04:04:06 -04:00
Rapptz 2cd6d771ec Make __repr__ slightly more detailed and add a few missing ones.
This includes raw events (which didn't have any) and a few other
types that were missing them. Upon review some more useful fields were
added to the repr output which would be more useful during debugging.
2019-05-26 02:32:47 -04:00
Rapptz ab6dd2a27a Add note for Message.tts
Fix #2186
2019-05-25 06:17:52 -04:00
Rapptz 3c387e9031 Use attrgetter to speed up Member attribute access by 2x. 2019-05-25 03:14:35 -04:00
Rapptz d96b8a0b80 Add Discord error code to HTTPException message. 2019-05-24 04:23:06 -04:00