Rapptz
60f9ac3062
Fix missing imports
2019-02-12 20:25:16 -05:00
Rapptz
5d78f43e55
Expose more information from partial invites, along with counts.
...
This adds the following information.
* `PartialInviteGuild` to replace `Object` patching
* `PartialInviteChannel` to replace `Object` patching
* Invite.approximate_member_count and Invite.approximate_presence_count
The new partial objects provide better documentation on what is
expected when you fetch random invites.
Fixes #1830
2019-02-12 20:22:47 -05:00
Rapptz
700dbb5555
Fix missing import.
2019-02-06 02:28:59 -05:00
Rapptz
e429763dea
Try to optimize for the common ASCII case.
...
This is still a slowdown (about 45ns to 300ns) but it's less severe
than the original implementation (about 900 to 1100ns).
2019-02-06 02:15:22 -05:00
Rapptz
7f4c57dd5a
Fix overwriting of AuditLogDiff.roles for multiple $add/$remove keys
2018-12-31 08:39:28 -05:00
Rapptz
dec14faea9
Log rate limit hits into WARNING instead of INFO.
2018-12-27 08:25:51 -05:00
Rapptz
b79a53cae4
Fix typo in exception message in Guild.edit
2018-12-17 22:33:07 -05:00
Rapptz
648e62031d
Add support for explicit_content_filter in Guild.edit
2018-12-17 18:04:32 -05:00
Rapptz
26bb6c6ddc
Fix some lingering attribute setting issues.
2018-12-14 21:59:31 -05:00
Rapptz
c7396dc8ac
Add support for mobile indicators and per-client statuses.
2018-12-14 20:57:21 -05:00
Rapptz
93d576a65b
Add support for spoiler attachments.
2018-12-14 19:09:25 -05:00
Rapptz
e6a8eb1a7c
Fix bug in Guild.splash_url
2018-11-26 02:04:01 -05:00
Rapptz
1f2602d11e
Support discordapp.com invite URLs.
2018-11-25 04:54:12 -05:00
Rapptz
8b18fa307b
Add support for default notification level in audit logs and Guild.edit
2018-11-25 01:42:33 -05:00
Rapptz
860d6a9ace
Revert "Rework documentation to not duplicate inherited members."
...
This reverts commit 96981210b3 .
2018-10-11 03:42:01 -04:00
Rapptz
e12db3a25d
[commands] Add call_once keyword-only parameter for Bot.remove_check
...
Technically a breaking change. This is to be a parallel with the
Bot.add_check interface.
2018-10-11 02:52:26 -04:00
Rapptz
1da6962580
Fix up Guild.create_custom_emoji docstring.
2018-10-03 05:45:55 -04:00
Rapptz
96981210b3
Rework documentation to not duplicate inherited members.
...
This will probably be reverted in 1 week.
2018-10-03 05:45:30 -04:00
Rapptz
836ae73040
Add support for AuditLogDiff.slowmode_delay.
2018-09-25 21:56:41 -04:00
Rapptz
45af0c83de
[commands] Fix NameError in clean_content converter
2018-09-25 19:48:20 -04:00
Rapptz
77239e4f15
Fix NameError and duplicate insertion bug when moving roles.
2018-09-24 23:55:05 -04:00
Rapptz
54e9401a21
Update Japanese documentation strings
2018-09-24 23:42:20 -04:00
Rapptz
99b1390e5a
[commands] Elaborate more on disallowed types in Greedy and Optional
2018-09-24 23:39:25 -04:00
Rapptz
2721689254
Optimise tight loops in DiscordGateway.received_message
...
* type(x) is y is faster than isinstance(x, y)
* Re-arrange if-statements for common statements
* Drop handler getattr for most events that don't use it
2018-09-24 23:22:49 -04:00
Rapptz
095f0ec2fc
Optimise some member and user related routines.
...
* Skip user update if possible
* Drop copy.copy in favour of manual copy
Credit to Hornwitser for these findings.
2018-09-24 22:50:05 -04:00
Rapptz
95d8bb2e85
Change internal representation of roles in Member and Emoji.
...
Introduce a new internal type, SnowflakeList, which has better memory
footprint over a regular list or set of roles. It is suspected that
there will be a 9x reduction of memory for every Emoji instance and a
48 byte saving per Member instance. However, these savings will
probably only be evident on larger bots.
As a consequence of this change, Member.roles is now computed lazily.
Currently I am not sure if I want to do the initial sorting on the
SnowflakeList for Member, as this comes with a O(n log n) cost when
creating a Member for little purpose since SnowflakeList.has is not
overly relied on. If CPU time becomes an issue this might change.
2018-09-24 22:19:42 -04:00
Rapptz
3d03dbc451
Change internal role storage in Guild to a dict instead of a list.
...
This adds the following APIs:
* Guild.get_role
This removes the following APIs:
* Guild.role_hierarchy
To compensate for the removed APIs, Guild.roles is now a sorted list
based on hierarchy. The first element will always be the @everyone
role.
This speeds up access at the cost of some memory, theoretically.
2018-09-24 21:08:48 -04:00
Rapptz
12cb074316
Take the default role property into account when comparing roles.
2018-09-24 20:19:47 -04:00
Rapptz
418048b98a
[commands] Fix up Greedy documentation a bit.
2018-09-24 04:22:09 -04:00
Rapptz
21cb700d2c
Forgot to add these images.
2018-09-24 04:06:34 -04:00
Rapptz
814b03f5a8
[commands] Add commands.Greedy converter and documentation.
...
This allows for greedy "consume until you can't" behaviour similar to
typing.Optional but for lists.
2018-09-24 03:56:32 -04:00
Rapptz
00a445310b
[commands] Allow for backtracking parsing with typing.Optional
...
Original code by zephyrkul.
This new parsing mode allows for backtracking in case of failure
when a typing.Union[..., NoneType] or a typing.Optional[...] is used.
This means that if a type would fail to parse, the view is undo'd to
a previous state, passing the default parameter to the callback, and
then continuing on the next parameter as if nothing had happened.
2018-09-23 06:12:26 -04:00
Rapptz
51a03d96e0
Update Japanese string dump.
2018-09-15 09:54:32 -04:00
Rapptz
5c24e69cf2
Fix up the Sphinx strings causing warnings.
2018-09-15 09:54:00 -04:00
Rapptz
0352c80a17
Add support for Discord's slow mode.
...
Adds the following:
* `slowmode_delay` for `TextChannel.edit`
* `slowmode_delay` attribute for `TextChannel`
2018-09-14 22:55:29 -04:00
Rapptz
fdc71695dc
[commands] Use eval instead of get_type_hints to resolve typehints
...
The previous usage of `typing.get_type_hints` caused issues as it would
incorrectly decide to convert annotations into their equivalent
`typing` form -- which is not what we want to happen here.
Due to some use-cases about how setting `Command.callback` work and
the amount of moving parts that have changed due to this patch, it is
probably better to refactor the way it is set so users can have this
use-case handled transparently for them.
2018-08-22 23:16:52 -04:00
Rapptz
aa7c5c3ec1
[commands] Ignore bots from Bot.process_commands by default.
2018-08-22 21:06:09 -04:00
Rapptz
00ee7549c9
Update new member example to not be broken.
...
Took forever but better late than never.
2018-08-22 21:06:09 -04:00
Rapptz
8ccb98d395
Explicitly mark event handlers private
2018-08-09 03:27:39 -04:00
Rapptz
86712c4d60
Ensure intersphinx points to the Japanese documentation.
2018-08-08 00:19:40 -04:00
Rapptz
f06563cb35
Change Japanese font to Yu Gothic and Noto CJK in documentation
2018-08-01 20:46:32 -04:00
Rapptz
3dd462d5b5
Update .po files for Permissions.priority_speaker
2018-08-01 20:30:11 -04:00
Rapptz
2cbf8ec545
Don't build PDF.
2018-07-31 17:41:49 -04:00
Rapptz
18385dc49f
Add stubs for Japanese translations.
2018-07-31 17:37:22 -04:00
Rapptz
8d39ab8c8c
Fix dumb typo in the warning.
2018-07-24 04:48:36 -04:00
Rapptz
12236325f6
Add a warning for self-bots in Client.login
...
Closes #1449
2018-07-24 03:48:51 -04:00
Rapptz
8d3b2d0b70
[commands] Fix broken handling of keyword only parameters.
...
Had a missing `param` argument in the new `do_conversion` code.
2018-07-21 02:52:45 -04:00
Rapptz
69ca675ca0
[commands] Fix typing.Union converters for 3.7
...
Guido please don't break this
2018-07-20 18:01:48 -04:00
Rapptz
52767cf315
[commands] Add documentation for BadUnionArgument
2018-07-20 06:02:29 -04:00
Rapptz
34ece4d1df
Bump websockets to 6.0 for 3.7 compatibility.
2018-07-20 06:00:12 -04:00
Rapptz
da5776a358
[commands] Make ConversionError have the original error as an attribute
2018-07-20 05:54:51 -04:00
Rapptz
92dde9aef9
[commands] Add support for typing.Union as a converter
2018-07-20 05:51:43 -04:00
Rapptz
4aecdea052
Make TextChannel.create_webhook name parameter mandatory.
2018-07-20 04:17:28 -04:00
Rapptz
351bb1927a
Fix crashing with wonky TYPING_START events.
...
Fixes #1439
2018-07-20 04:15:58 -04:00
Rapptz
983be10111
Fix __aiter__ compatibility with 3.7.
2018-06-29 21:51:25 -04:00
Rapptz
1538c78836
Change jump_to_url to jump_url and fix format.
...
People kept asking, might as well.
2018-06-29 21:50:38 -04:00
Rapptz
0ba958bae4
Bump Sphinx to 1.7.4
2018-06-21 03:45:38 -04:00
Rapptz
607771c4f4
Fix Bot.get_prefix second parameter breaking.
2018-06-10 18:41:36 -04:00
Rapptz
5ae9ea26b1
Disable compression for websockets.
...
Increase of RAM and CPU doesn't give me much benefit I feel.
2018-06-10 18:37:51 -04:00
Rapptz
e51f92e78d
Fix NameError for typing context manager.
...
Fixes #1342
2018-06-10 18:30:32 -04:00
Rapptz
c67d95327e
Remove dead package references.
2018-06-10 18:16:40 -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
Rapptz
7eb918b19e
Add Message.jump_to_url
2018-06-10 15:25:17 -04:00
Rapptz
6b75179c1f
Remove emojis from cache if they're removed from a guild.
2018-05-19 17:07:45 -04:00
Rapptz
0dafdedc65
abc.GuildChannel.set_permissions can raise NotFound.
...
Fix #1254
2018-05-18 20:17:49 -04:00
Rapptz
07a535f514
Document user parameter in Guild.get_ban
2018-05-08 22:03:30 -04:00
Rapptz
60f0b22cbb
Filter null mentions when creating a Message.
2018-04-20 00:32:23 -04:00
Rapptz
56650ae7c2
Change raw events to use slotted data models instead of parameters.
...
This allows for internal changes in Discord to not cause a breaking
change every time something changes.
Also implements #1214 which adds guild_id to every event where
applicable.
This is a breaking change.
2018-04-14 02:23:38 -04:00
Rapptz
e04629999b
Downgrade websockets due to bugs.
...
https://github.com/aaugustin/websockets/issues/350 keeps causing too
many issues for too many people for this version to be used by the
public users of this library.
2018-04-09 04:14:12 -04:00
Rapptz
3cb6ac152e
Userbots do not have a DM cache cap limit.
2018-04-02 00:42:14 -04:00
Rapptz
95de4d1df1
Actually fix the order in Guild.by_category.
2018-03-31 23:16:53 -04:00
Rapptz
87a7efc410
Flip comparison in Guild.by_category.
2018-03-31 22:55:42 -04:00
Rapptz
796ff6d7e6
Sort voice channels below text channels in Guild.by_category
2018-03-25 04:00:47 -04:00
Rapptz
f176309179
[commands] Don't handle single quotes.
2018-03-20 03:25:40 -04:00
Rapptz
eb5defed00
Fix Webhook.guild raising an AttributeError.
...
Fixes #1148
2018-03-16 17:59:50 -04:00
Rapptz
e9916e2844
Convert Client.activity back to an Activity-like object
2018-03-06 18:13:17 -05:00
Rapptz
61c8e35929
Missing import for _ActivityTag inside Client
2018-03-06 09:10:13 -05:00
Rapptz
857e30c68e
Add some documentation for the Game to Activity breaking change.
2018-03-06 01:21:25 -05:00
Rapptz
d8a85f4898
[commands] Minor optimisations to unicode quote handling.
2018-03-06 01:16:00 -05:00
Rapptz
871a262ee3
[commands] Add ability to have case insensitive commands.
...
This is powered by a dict-like class for the people who want to opt-in
to the performance downgrade for usability for majority English
speaking users.
Since it is slower than the regular dict due to the excessive calls to
str.lower along with the possibilities of gotchas for other languages
outside of English, this is kept as False for the default case.
2018-03-06 00:37:12 -05:00
Rapptz
1590441dbf
Fix typo in TextChannel.delete_messages documentation.
2018-03-06 00:19:58 -05:00
Rapptz
a425bd91be
Fix invalid close errors on websockets 4.x
...
Fixes #1110
2018-03-06 00:15:36 -05:00
Rapptz
0fcd385b9a
Add ability to change the activity used when logging in at runtime.
2018-03-05 11:23:07 -05:00
Rapptz
f8f8f418f3
Split Game object to separate Activity subtypes for Rich Presences.
...
This is a massive breaking change.
* All references to "game" have been renamed to "activity"
* Activity objects contain a majority of the rich presence information
* Game and Streaming are subtypes for memory optimisation purposes for
the more common cases.
* Introduce a more specialised read-only type, Spotify, for the
official Spotify integration to make it easier to use.
2018-03-05 11:15:49 -05:00
Rapptz
6782fdd34d
Add missing coroutine decorator to HTTPClient.get_attachment
...
Fixes #1104
2018-02-26 18:55:05 -05:00
Rapptz
1c215cfbbe
Don't cache webhook users.
...
Fixes #1101
2018-02-24 17:37:37 -05:00
Rapptz
355eb08b25
Add seek_begin keyword argument to Attachment.save
2018-02-13 05:41:10 -05:00
Rapptz
4fef6fc4b0
Fix minor typo in migrating documentation.
2018-01-22 17:34:46 -05:00
Rapptz
8de382fcd3
Change logic in PartialEmoji.__str__ a little.
2018-01-06 17:35:03 -05:00
Rapptz
30b5047b0e
Fix multipart sending for RequestsWebhookAdapter to work.
2018-01-03 21:55:48 -05:00
Rapptz
6813280938
websupport is not actually a Sphinx extension apparently.
2017-12-29 06:34:06 -05:00
Rapptz
e9f887aab2
Add websupport extension to extension list.
2017-12-29 06:29:59 -05:00
Rapptz
3a8b97ffb0
[commands] Document that can_run can raise.
2017-12-29 06:00:25 -05:00
Rapptz
e61ac8e60f
[commands] Forbid passing a string to aliases in Command.
...
Fixes #974
2017-12-29 01:42:45 -05:00
Rapptz
300c0f7b19
Pip version requires require all 3 digits.
2017-12-28 21:39:44 -05:00
Rapptz
5c65acd9b3
Add some dependencies for RTD.
2017-12-28 21:34:41 -05:00
Rapptz
da9828c41f
Use the proper endpoint for removing your own reaction.
2017-12-21 19:20:48 -05:00
Rapptz
97fc4bf651
Update Emoji.url to point to the GIF version of the animated emoji.
2017-12-21 18:55:13 -05:00
Rapptz
a6bf792dec
Animated emoji support.
2017-12-21 18:51:47 -05:00
Rapptz
e2f7945f59
Proper variable name in Client.clear.
2017-12-20 09:45:09 -05:00