Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz e66b2dce88 Rename threading internal variable conflict. 2016-05-13 20:24:45 -04:00
Rapptz 9077b4e319 Fix Member.colour to use the new algorithm for determining colour. 2016-05-12 22:12:33 -04:00
Rapptz 9176caa355 Fix Channel.permissions_for to work with the new permission system. 2016-05-12 21:25:18 -04:00
Rapptz dd8a60f743 Add Permissions.administrator and change Permissions.manage_roles 2016-05-12 21:10:02 -04:00
Rapptz 92175ea152 Add example for Client.purge_from 2016-05-12 09:05:51 -04:00
Rapptz 493bffc685 Rework playlist example to work with multi-server voice. 2016-05-12 06:06:39 -04:00
Rapptz 1155a0aaa4 Make Player threads into daemon threads. 2016-05-12 06:06:38 -04:00
Rapptz 3c04ec2af0 Add a way to change the player volume. 2016-05-12 06:06:38 -04:00
Rapptz 339e26275f Add VoiceClient.move_to for quick switching of voice channels. 2016-05-12 06:06:37 -04:00
Rapptz b8eab5f656 Change second run_until_complete to not be empty.
This should stop the infinite loops in some cases.
2016-05-10 20:21:08 -04:00
Rapptz 0c8d5ee863 Force encoding of text retrieval functions to use utf-8.
Closes #207
2016-05-10 19:52:34 -04:00
Rapptz 1e175f2ab3 Fix issue with Client.purge_from not deleting the 101st message. 2016-05-10 19:39:58 -04:00
Rapptz 1f86a9b795 Add Client.purge_from as a high level interface around bulk delete. 2016-05-10 08:43:09 -04:00
Rapptz 1b601097d2 Add Client.delete_messages for bulk delete. 2016-05-10 07:52:22 -04:00
Rapptz cf2bee5c43 Fix issue with Member.joined_at being None. 2016-05-10 06:04:44 -04:00
Rapptz 3feba5d1bb Add Game.type and Game.url attributes to change streaming status. 2016-05-06 16:38:22 -04:00
Rapptz 701720a0f8 Add a TimeoutError if VoiceClient.connect fails. 2016-05-06 13:30:44 -04:00
Rapptz 570ccbf753 Suppress ConnectionClosed on sending in the main websocket. 2016-05-06 13:19:41 -04:00
Rapptz 2fc496304c Add libopus DLLs for ease of use. 2016-05-06 12:23:24 -04:00
Rapptz d9c780b8a8 Working multi-server voice support. 2016-05-01 20:54:13 -04:00
Rapptz 5fa715c350 Fix typo in Message.role_mentions documentation. 2016-05-01 07:34:48 -04:00
Rapptz 1acf478fb7 Make Permissions an iterable class. 2016-05-01 07:22:45 -04:00
Rapptz fdaa4299a3 [commands] Fix when_mentioned when handling nicknames. 2016-05-01 07:06:19 -04:00
Rapptz 5e8c79bf76 Attempt to consistently sort of all Member.roles 2016-04-29 22:44:25 -04:00
Rapptz 47cccba946 Remove setting read-only __doc__ in Member overrides. 2016-04-29 22:30:51 -04:00
Rapptz ebaf74e784 Sort member.roles by ID but keep the default role in index 0.
This should make the events checking if `before` and `after` roles
are equivalent more sane for users.
2016-04-29 22:29:56 -04:00
Rapptz e2bfa90eef Add User.mentioned_in helper to check if a message mentions you. 2016-04-29 20:11:13 -04:00
Rapptz 3758c0aa83 Member.mention now uses nickname hint if needed. 2016-04-29 19:29:48 -04:00
Rapptz 196e9463f5 Add Role.mentionable attribute. 2016-04-29 19:29:29 -04:00
Rapptz 7f09acf871 [commands] Allow role mentions to work with discord.Role params.
This also fixes the Member regex to support the new <@!user_id> syntax
and allows colours to have a leading # before the number.
2016-04-29 08:45:12 -04:00
Rapptz e112536ce2 Simplify User.display_name a bit. 2016-04-29 08:27:19 -04:00
Rapptz 85806ef1d6 Handle nicknames in Server.get_member_named 2016-04-29 08:20:16 -04:00
Rapptz 79f6554289 Add Message.role_mentions and handle them in Message.clean_content 2016-04-29 07:54:49 -04:00
Rapptz abb955fdaa Add Role.mention property 2016-04-29 07:24:32 -04:00
Rapptz 07adb1d5e9 Add ability to change nicknames via Client.change_nickname 2016-04-29 07:18:01 -04:00
Rapptz 133e8d3a44 Add support for server specific nicknames. 2016-04-29 06:39:21 -04:00
Rapptz cc78cfedb6 Add permissions for changing or managing nicknames. 2016-04-29 06:23:09 -04:00
Rapptz c1b5a52823 Refactor voice websocket into gateway.py 2016-04-27 18:36:24 -04:00
Rapptz 1c623ccf11 Begin working on gateway v4 support.
Bump websockets requirement to v3.1

Should be squashed...
2016-04-27 18:36:13 -04:00
Rapptz fda0c8cea0 Add compatibility layer for run_coroutine_threadsafe.
This is a breaking change, since discord.utils.create_task is moved
to discord.compat.create_task.
2016-04-25 20:52:16 -04:00
Rapptz e0ca746ad4 [commands] Make sure that mentions are the entire string. 2016-04-23 02:13:34 -04:00
Rapptz 54e9be7aed Message.clean_content now takes into consideration @here mentions. 2016-04-23 02:13:33 -04:00
Rapptz 8d7dd79673 Fix deadlock issue when joining large guilds. 2016-04-15 23:27:23 -04:00
Rapptz 03862a7145 Add a None check when setting status in Client.change_status. 2016-04-14 20:38:13 -04:00
Rapptz 7adf761a35 Retry if send_message or edit_message encounter a 502. 2016-04-14 13:16:27 -04:00
Rapptz 054c9c7109 [commands] CommandError derived exceptions in checks don't crash help. 2016-04-13 14:25:45 -04:00
Rapptz 7eb9a7dfdc Handle bot tag updates in GUILD_MEMBER_UPDATE. 2016-04-12 18:19:02 -04:00
Rapptz 53bc9a3007 Yield from parser coroutine instead of making it a task.
This should give us a bit better sequential message processing.
2016-04-12 18:18:03 -04:00
Rapptz 03041bdb0a Add Channel.overwrites_for function to get allow/deny pairs. 2016-04-12 13:10:43 -04:00
Rapptz 7023b353f6 User JSON object has 'username' keys not 'name'. 2016-04-11 14:39:04 -04:00
Rapptz 5c407df2b7 Fix Client.login documentation to showcase email/password login. 2016-04-11 14:30:44 -04:00
Rapptz 28b3d375e9 Check the right status code for improper token being passed. 2016-04-11 14:25:20 -04:00
Rapptz 6076c8c671 Better chunking behaviour and add members on PRESENCE_UPDATE.
This should hopefully cover all cases where members are added.
There was a bug where an array of chunks received would get entirely
processed if only a single chunk was received. This was fixed by
explicitly bailing early if we're requesting for chunks.
2016-04-11 14:24:15 -04:00
Rapptz 0401ab561b Proper chunking for unavailable guilds.
This will also delay on_ready until all chunking is complete.
2016-04-10 00:47:00 -04:00
Rapptz 29d3f5a886 Allow Client.edit_profile to work with bot accounts. 2016-04-09 21:42:26 -04:00
Rapptz fa14c72836 Add User.bot attribute to check if a user is a bot account. 2016-04-09 21:42:25 -04:00
Rapptz eedad13ac1 Add utility function for generating OAuth2 urls. 2016-04-08 22:51:57 -04:00
Rapptz 72e84a1b47 Change all email/password pair examples to use token. 2016-04-08 22:02:38 -04:00
Rapptz 93edf88ee4 Change login, start and run to be variadic. 2016-04-08 22:00:06 -04:00
Rapptz 222a89a653 Fix unclosed response and document token login a bit better. 2016-04-08 21:16:30 -04:00
Rapptz e64787a415 Guard against AttributeErrors when clearing cached slot cache. 2016-04-05 18:22:44 -04:00
Rapptz dfd51b95d6 Make Message.clean_content a cached property again.
Instead, clear the cached properties so they will be re-cached when
invoked again.
2016-04-05 18:01:55 -04:00
Rapptz 82b2421ac7 [commands] Add deterministic cog unloading.
The special function is `__unload` to prevent with name conflicts with
existing or future cogs.
2016-04-04 04:45:15 -04:00
Rapptz 8b7f15ef8d Skip member_update event when a member is not in a guild. 2016-04-02 23:38:45 -04:00
Rapptz 4451091c91 [commands] Fix pagination logic a little inside HelpFormatter.
This should prevent pages accidentally reaching >2k chars.
2016-04-02 08:15:34 -04:00
Rapptz d79a13d7bc [commands] Refactor special cased discord.py converters.
Code is a little more straightforward. The Member and Channel special
cases will now work in private message contexts when given a name. The
Member special case will also work if you pass in a name and
discriminator combo.
2016-04-01 07:27:39 -04:00
Rapptz 1a202bb6eb Add Server.get_member_named to help with name + discriminator lookups. 2016-04-01 05:59:58 -04:00
Rapptz f93fa8a0b2 User.__str__ now includes the discriminator. 2016-04-01 05:48:31 -04:00
Rapptz 7fe5a54183 Clarify that linux users need libffi for PyNaCl. 2016-04-01 05:10:43 -04:00
Rapptz ee4574a5e1 Drop voice packets when it can be potentially blocking. 2016-03-31 23:44:22 -04:00
Rapptz 10cb16a450 Add PyNaCl to the list of requirements. 2016-03-31 23:18:35 -04:00
Rapptz c015e492d7 [commands] Don't yield from inside bot utility functions. 2016-03-31 20:09:20 -04:00
Rapptz 7dcf0c059c Clarify that Client.close is a coroutine. 2016-03-29 20:44:33 -04:00
Rapptz 53a240e0d3 Add Member.colour property to get rendered role colour of a member. 2016-03-27 15:12:05 -04:00
Rapptz 1a98e9235a Clarify Channel.position documentation. 2016-03-25 22:51:03 -04:00
Rapptz 0ad1cb95a3 Server.icon_url uses API url instead of the CDN. 2016-03-25 19:13:06 -04:00
Rapptz 827ca1e5a2 Add boolean option to specify if VoiceClient.play_audio should encode.
This allows people to send raw opus encoded data instead of being
forced to encode to Opus.
2016-03-25 19:12:59 -04:00
Rapptz 4fa1bcadaa Add a way to set ffmpeg options before the -i flag. 2016-03-25 18:49:23 -04:00
Rapptz 2ef38107d8 Add missing created_at properties for other objects.
Such as Channel, PrivateChannel, Object and Role.
2016-03-25 18:30:42 -04:00
Rapptz 050c668eac [commands] Add bot decorators into __all__. 2016-03-11 23:19:05 -05:00
Rapptz 78e2db1863 Add support for aiohttp connectors.
Fixes #98.
2016-03-07 17:54:51 -05:00
Rapptz 6694df268c Fix crashing when an unhandled event occurs. 2016-03-06 16:26:58 -05:00
Rapptz 80587fc1e9 Change parsing of READY to be eager again. 2016-03-06 14:41:31 -05:00
Rapptz 6ac2e07833 Fix bug where large servers in GUILD_CREATE did not get chunked. 2016-03-06 05:52:05 -05:00
Rapptz 425bd2c091 Move chunking logic back into ConnectionState.
This allows for a nicer design when dealing with parsers that could
end up being coroutines.
2016-03-06 05:24:18 -05:00
Rapptz f437ffe44e Add created_at properties for Server and User. 2016-03-06 03:47:25 -05:00
Rapptz d133f9f761 Clean up documentation of utils.snowflake_time 2016-03-06 03:42:13 -05:00
Rapptz e2ed8b1476 Remove Server.me from __slots__ since it is a property now. 2016-03-05 20:58:25 -05:00
Rapptz 4a1313f00c [commands] Add when_mentioned_or helper to have mentions and prefixes. 2016-03-05 20:10:11 -05:00
Rapptz c2ffff1549 Fix bug where @everyone usernames bypass Message.clean_content. 2016-03-02 23:30:09 -05:00
Rapptz c0dba0f4f2 [commands] Fix typo in Bot.upload docstring. 2016-03-02 23:27:57 -05:00
Rapptz 6a31f6af1e [commands] Fix NameError in bot_has_permissions. 2016-03-02 23:18:47 -05:00
Rapptz f49dc81adf [commands] bot_has_permissions decorator actually checks for bot. 2016-03-02 21:54:56 -05:00
Rapptz 3802e7f534 Server.me is now a dynamic property to avoid outdated references. 2016-03-01 22:54:28 -05:00
Rapptz bf2b8744a5 [commands] Do not swallow AttributeErrors raised by the setup function 2016-02-24 15:14:20 -05:00
Rapptz 13f8b972e6 Fix bug where the everyone role was not being properly resolved.
The permissions_for assumed that the everyone role would be the first
element of the permission overwrites but this is not guaranteed so we
have to guarantee it ourselves.
2016-02-24 15:13:20 -05:00
Rapptz 489363f5f8 Switch URLs from Client.delete_server and Client.leave_server. 2016-02-23 19:01:04 -05:00
Rapptz 87f7fced24 Add Client.delete_server. 2016-02-23 18:59:44 -05:00
Rapptz 49427ce065 Change requirements.txt to use version 0.21.x of aiohttp. 2016-02-19 12:27:24 -05:00
Rapptz 98090a2a57 [commands] Helper functions now take *args and **kwargs. 2016-02-18 19:42:03 -05:00