Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz ce9d5b4f4a [commands] Split process_commands into lower level bits. 2017-01-14 19:17:08 -05:00
Rapptz 87dc2f4dd3 Show inherited members in the docs for User and Member. 2017-01-13 20:46:23 -05:00
Rapptz 33450cd1b6 Fix documentation to properly use Messageable.send 2017-01-13 20:35:44 -05:00
Rapptz 695b62ccd3 [commands] Make Command a descriptor for #426. 2017-01-13 20:34:00 -05:00
Rapptz ced617e786 Use the improved role creation endpoint for making roles. 2017-01-13 01:30:09 -05:00
Rapptz 6d3a5eaeb6 Remove extraneous kwargs from Permissions constructor. 2017-01-13 01:27:16 -05:00
Rapptz c8247371f1 Fix 404s in pins_from and create_role routes. 2017-01-12 18:05:46 -05:00
Rapptz ae6fb54b1b Make Reaction.users return an async iterator. 2017-01-11 21:20:28 -05:00
Rapptz b9b9d8c4d0 Fix NameError inside Messageable.get_message 2017-01-11 20:26:06 -05:00
Rapptz 06ca518459 Rename NoMoreMessages to NoMoreItems. 2017-01-11 19:53:48 -05:00
Rapptz 8c274139df Allow HistoryIterator to be flattened into a list. 2017-01-11 19:04:52 -05:00
Rapptz 0e0b569d53 Propagate event loop in Messageable.history. 2017-01-11 13:24:28 -05:00
Rapptz 7e2c016eaa Remove extraneous unneeded hash calls. 2017-01-10 04:37:45 -05:00
Rapptz 94448d3972 Fix NameError inside HTTPClient.edit_member. 2017-01-09 21:30:59 -05:00
Rapptz 3c6d677f85 Update README example. 2017-01-09 21:25:03 -05:00
Rapptz b86a568f86 Fix HTTP.application_info 404ing. 2017-01-09 20:58:58 -05:00
Rapptz f877efdd89 Change version info to 1.0.0a0. 2017-01-09 20:52:11 -05:00
Rapptz 6d33ea748a Implement rate limit headers. 2017-01-09 18:51:24 -05:00
Rapptz 6adfd633ea Allow Messageable.send to work with non-truthy types. 2017-01-09 09:50:14 -05:00
Rapptz b09f25293b Use CDN URL for Guild.icon_url. 2017-01-09 03:43:51 -05:00
Rapptz 36a5925908 Return default avatar URL if an avatar is not given for User.avatar_url
Also use the CDN URL like Jake has always requested.
2017-01-09 03:41:01 -05:00
Rapptz 63604e0566 Use CDN URL for default avatars. 2017-01-09 03:35:51 -05:00
Rapptz 5e201be792 Fix typo in Guild.invites 2017-01-09 03:13:57 -05:00
Rapptz 3780943d0a Add Guild.create_text_channel and Guild.create_voice_channel. 2017-01-08 17:09:56 -05:00
Rapptz d13df30e2a Add ability to edit guild invite splashes. 2017-01-08 07:24:56 -05:00
Rapptz d22d8cc430 [commands] Add AutoShardedBot counterpart to AutoShardedClient. 2017-01-08 04:50:59 -05:00
Rapptz aae8b783e9 VoiceChannel.voice_members is now computed when needed. 2017-01-08 04:31:33 -05:00
Rapptz 4bd8382e06 Fix bug that caused Guild instances to be in VoiceChannel.voice_members 2017-01-08 03:46:43 -05:00
Rapptz 93d267cd2b Remove extraneous prints. 2017-01-08 02:08:38 -05:00
Rapptz 92c1637921 Allow overriding the shard_ids used for initial shard launch. 2017-01-08 02:05:21 -05:00
Rapptz 4bc6625739 Add AutoShardedClient.change_presence. 2017-01-08 01:51:10 -05:00
Rapptz b5bed9ef33 Change the way shards are launched in AutoShardedClient. 2017-01-08 01:31:46 -05:00
Rapptz d93067ca0f Add Guild.chunked property. 2017-01-08 01:28:15 -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 d54d7f7ac0 Fix variable shadowing in READY parsing. 2017-01-05 07:03:56 -05:00
Rapptz 808a05ff2d Move global user cache to a WeakValueDictionary. 2017-01-04 05:16:59 -05:00
Rapptz f8a5d890fe Update examples to match the new rewrite API. 2017-01-03 20:58:11 -05:00
Rapptz 94655c77c0 Fix Messageable.typing context manager. 2017-01-03 20:24:42 -05:00
Rapptz d086b5421d Fix NameError when dealing with permission resolution. 2017-01-03 20:17:59 -05:00
Rapptz c863d93f69 Fix bug that made member roles go missing. 2017-01-03 20:17:58 -05:00
Rapptz 3f06cf9e81 [commands] Don't use removed is_private attribute in core decorators. 2017-01-03 20:17:58 -05:00
Rapptz 496f5d0472 [commands] Fix help command from not working with recent changes. 2017-01-03 09:52:12 -05:00
Rapptz 7690455b21 Make User and Member messageable. 2017-01-03 09:52:12 -05:00
Rapptz 7431a127cf Change Messageable channel getter to be a coroutine. 2017-01-03 09:52:11 -05:00
Rapptz 98b981848d Move message creation to a factory method inside ConnectionState. 2017-01-03 09:52:10 -05:00
Rapptz 5e6bfecb07 Move away from StateContext and use ConnectionState directly. 2017-01-03 09:52:10 -05:00
Rapptz d5b616fa11 Rename MessageChannel abc to Messageable. 2017-01-03 09:52:09 -05:00
Rapptz 633eacc982 Add permission overwrites to GuildChannel. 2017-01-03 09:52:08 -05:00
Rapptz 6709979831 Move GuildChannel over to abc module. 2017-01-03 09:52:08 -05:00
Rapptz a557858742 Remove chunks of the voice code to redesign later. 2017-01-03 09:52:07 -05:00
Rapptz 7eb73cdc71 Add Role.members to get every member with a role. 2017-01-03 09:52:06 -05:00
Rapptz dceba9d962 Add useful repr to all data classes. 2017-01-03 09:52:06 -05:00
Rapptz ec6c7f8b34 Fix handling of author update and missing type attribute in Message. 2017-01-03 09:52:05 -05:00
Rapptz 4e175d36d3 Add delete_after parameter to MessageChannel.send 2017-01-03 09:52:04 -05:00
Rapptz 20ddc9f14f [commands] Remove send_ utility functions. 2017-01-03 09:52:04 -05:00
Rapptz 406984af2e [commands] First pass in making commands ext work again. 2017-01-03 09:52:03 -05:00
Rapptz 9c000c5a72 Fix documentation to work. 2017-01-03 09:52:02 -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 30394d03f2 Remove no longer used functions in Client. 2017-01-03 09:52:00 -05:00
Rapptz 802f6c91d4 Add Message.clear_reactions 2017-01-03 09:52:00 -05:00
Rapptz 2c50c18ca3 Change dict value views into lists. 2017-01-03 09:51:59 -05:00
Rapptz c205eb3528 Re-add support for embeds. 2017-01-03 09:51:58 -05:00
Rapptz 42891c3084 Make Message.embeds to be based on discord.Embed 2017-01-03 09:51:58 -05:00
Rapptz c187d87dae Re-add support for reactions.
We now store emojis in a global cache and make things like adding
and removing reactions part of the stateful Message class.
2017-01-03 09:51:57 -05:00
Rapptz 59a0df5f98 Rename try_insert_user to store_user 2017-01-03 09:51:56 -05:00
Rapptz 5cb3ad14e8 Make emojis and members stateful. 2017-01-03 09:51:55 -05:00
Rapptz a7a60e433b Make roles and guilds 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 f33eaa4a61 Stateful Message and remove Invite.xkcd since it is removed. 2017-01-03 09:51:53 -05:00
Rapptz 1070cf0735 Add MessageChannel.typing context manager for prolonged typing. 2017-01-03 09:51:52 -05:00
Rapptz 53ab263125 Split channel types.
This splits them into the following:

* DMChannel
* GroupChannel
* VoiceChannel
* TextChannel

This also makes the channels "stateful".
2017-01-03 09:51:52 -05:00
Rapptz 20251c54a7 [commands] Bot skip check now works with the new __eq__ changes. 2017-01-03 09:51:51 -05:00
Rapptz e4b16851bf Slots use tuples instead now. 2017-01-03 09:51:50 -05:00
Rapptz b9dafe375f Add some basic ABCs. 2017-01-03 09:51:50 -05:00
Rapptz 45c729b167 Switch IDs to use int instead of str 2017-01-03 09:51:49 -05:00
Rapptz aa8a328f0a Remove Message.timestamp and make Message.channel_mentions lazy.
Message.timestamp is replaced with Message.created_at. This commit
also affects how MESSAGE_UPDATE is handled by only assuming that two
keys are provided rather than overwriting data with missing keys.
2017-01-03 09:51:48 -05:00
Rapptz 31229a53e9 Optimise VoiceState for memory.
Instead of storing one VoiceState per Member, only store them if
necessary. This should bring down the number of instances
significantly.
2017-01-03 09:51:47 -05:00
Rapptz 044b0824e6 Begin working on the rewrite. 2017-01-03 09:51:47 -05:00
Rapptz a8264f6540 Chunk every guild if it's a user bot.
This also increases the timeout for chunking by 30 seconds for every
chunk we're waiting for.
2016-12-24 17:32:20 -05:00
Rapptz 4d59bca4aa Support animated avatars in User.avatar_url. 2016-12-23 00:43:19 -05:00
Rapptz bed2e90e82 Properly propagate loop. Fixes #420. 2016-12-21 00:06:19 -05:00
Rapptz 5731f3405d Version bump to v0.16.0. 2016-12-19 17:53:41 -05:00
Rapptz 00e30f3106 [commands] Shield against dictionary resize in Bot.close 2016-12-17 21:18:48 -05:00
Rapptz fc1a7183a0 [commands] Unload all cogs when gracefully exiting bot. 2016-12-17 14:47:29 -05:00
Rapptz b8909ae389 [commands] Properly propagate CommandError derived exceptions.
If a command or a group raised a CommandError derived exception it
would be wrapped into CommandInvokeError. This fixes this case so it
raises the original exception instead.
2016-12-17 14:44:36 -05:00
Rapptz 6d88024f0f [commands] Add special extension function 'teardown' for clean-up.
This is to support people who want to clean up some external resource
that the extension is maintaining outside of a cog, where __unload
should be used instead.

The callable is the antipode of 'setup' and takes the same sole
parameter, the bot, after all commands, events, and cogs have been
unloaded.

Fixes #405.
2016-12-17 14:15:11 -05:00
Rapptz bafaf72c89 [commands] Unload all extensions when gracefully closing bot. 2016-12-17 14:15:10 -05:00
Rapptz c7946606f4 Add Channel.overwrites to get a channel's permission overwrites.
Fixes #414.
2016-12-17 14:00:34 -05:00
Rapptz 6302ef8094 Add support for partnered servers. Fixes #387.
This commit allows you to edit a server's invite splash, query if
something has partnered features, and retrieve the invite splash + URL.
2016-12-17 13:34:19 -05:00
Rapptz a0f4ad36eb Timeout waiting for chunking.
Sometimes the bot would keep waiting for chunks that somehow finished
before getting to the `wait` call. This is more so a temporary fix
rather than a fully correct one.
2016-12-16 21:28:12 -05:00
Rapptz 6306fc08db Discard null sequences in the gateway.
This was forbidding the Discord gateway from allowing us to RESUME
properly, causing an over-abundance of READY being called.
2016-12-16 18:29:29 -05:00
Rapptz 51fda76555 Fix typo in wait_for_reaction documentation. 2016-12-07 07:23:12 -05:00
Rapptz b7c90a5e3d Fix role comparisons.
Fixes #409
2016-12-02 01:28:54 -05:00
Rapptz 14a1bbceda Make FAQ use change_presence instead of change_status. 2016-11-30 17:08:55 -05:00
Rapptz 64733c0b19 Version bump to v0.15.1 2016-11-30 17:05:29 -05:00
Rapptz 59d17e4137 Version bump to v0.15.0 2016-11-22 19:59:28 -05:00
Rapptz 6f2603c049 [commands] Remove slots on Context.
This is to allow people to set temporary local variables by injecting
them directly into the context via some decorator or some other
mechanism. Contexts are not kept alive long enough to warrant being
slotted.
2016-11-22 19:57:19 -05:00
Rapptz c4ee4c1db4 Make discord.Embed builder more strict and easier to use.
Allow for easier use when trying to "reuse" the same discord.Embed
object by providing new methods such as Embed.clear_fields,
Embed.set_field_at, and allowing you to set things to Embed.Empty to
clear out an attribute.

For ease of use, things are automatically casted to ``str`` to prevent
the user from having HTTP 400 errors if they forgot to do so. The new
embed builder also supports "fluent-style" interface to allow you to
chain methods in a single line if necessary.

Certain parameters were removed since they were ignored by Discord
anyway such as `width` and `height` in Embed.set_image and
Embed.set_thumbnail.
2016-11-22 19:30:21 -05:00
Rapptz fb1f9ac659 Add PermissionOverwrite.is_empty to query empty state of an overwrite.
Fixes #382
2016-11-21 03:12:44 -05:00