139 Commits

Author SHA1 Message Date
Jared Shields
2f562bd695
Update docstrings for channel.py
`delete_messages` requires `manage_messages`; the docs in here, nor on RTD reflect this. 
Small amendment at line 180, adding three additional.
2018-02-26 22:04:49 -08:00
Tobotimus
3112e1c17e Add intersphinx 2018-01-06 17:23:59 -05:00
Rapptz
89bbbec37e Missing name parameter in VoiceChannel.edit documentation. 2017-10-26 05:36:19 -04: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
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
3b3b8a5150 Remove incorrect extraneous usage of reason keyword argument.
Fixes #726
2017-08-17 18:20:28 -04:00
Rapptz
63231ef033 Remove reason keyword argument from message deletion.
Apparently this is unsupported.

Affected functions include:

* abc.Messageable.send
* Message.delete
* TextChannel.delete_messages
* TextChannel.purge
2017-08-15 22:38:43 -04:00
khazhyk
f1e08cccac Add bulk argument to TextChannel.purge
bulk=False will never use bulk message delete. Useful e.g. for
using the purge interface for deleting the bot's own messages.
2017-07-24 00:11:05 -04: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
3fbeb94cdb Expose reverse parameter in TextChannel.purge 2017-07-14 01:13:50 -04:00
Rapptz
ea078f1c68 Fix TextChannel.purge not working. 2017-07-04 21:59:44 -04:00
Rapptz
77f04539b1 Typo in docstring for TextChannel.delete_messages 2017-06-29 20:33:19 -04:00
Rapptz
64cba11656 Allow TextChannel.delete_messages to take lists of 0 or 1 element. 2017-06-29 14:06:12 -04:00
Rapptz
f4e01b3a92 Make supported operations stand out more than attributes. 2017-05-20 02:08:34 -04:00
Rapptz
f73eb087c9 Use describe instead of tables for supported operations. 2017-05-13 18:48:14 -04:00
Rapptz
cf2269fdf4 Fix some left over incorrect snippets. 2017-05-12 21:12:28 -04:00
Rapptz
b44bba6ee6 First pass at documentation reform. 2017-05-12 20:14:34 -04:00
Rapptz
be2e706b2a Rename abc.Callable to abc.Connectable. 2017-05-10 21:36:49 -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
3f45db5c3b Better TextChannel.is_nsfw() check. 2017-04-30 02:53:33 -04:00
Rapptz
d3a86a5fb6 Add TextChannel.is_nsfw method to check for NSFW channels. 2017-04-26 21:02:30 -04:00
Rapptz
1fc08bc5a2 Remove unused imports. 2017-04-18 04:22:35 -04:00
Rapptz
3b1b26ffb1 Re-implement voice sending.
This is a complete redesign of the old voice code.

A list of major changes is as follows:

* The voice websocket will now automatically reconnect with
  exponential back-off just like the regular Client does.
* Removal of the stream player concept.
* Audio now gracefully pauses and resumes when a disconnect is found.
* Introduce a discord.AudioSource concept to abstract streams
* Flatten previous stream player functionality with the
  VoiceClient, e.g. player.stop() is now voice_client.stop()
* With the above re-coupling this means you no longer have to
  store players anywhere.
* The after function now requires a single parameter, the error,
  if any existed. This will typically be None.

A lot of this design is experimental.
2017-04-18 03:49:48 -04:00
Rapptz
39d65305a3 Add TextChannel.members to get members that can see a channel. 2017-02-28 17:42:07 -05:00
Rapptz
cf40e94af6 Rename VoiceChannel.voice_members to VoiceChannel.members 2017-02-28 17:40:17 -05:00
Rapptz
cbbc75cd8d Move purge and delete_messages from Messageable.
This is a breaking change. Move these two to TextChannel since the
other things that implement Messageable cannot reliably do bulk delete
actions in their respective channels.
2017-02-26 21:16:20 -05:00
Rapptz
ae36008279 Fix NameError in GroupChannel. 2017-02-10 15:42:52 -05:00
Rapptz
ca81f0c3fc Better group DM support. 2017-02-09 20:50:02 -05:00
Rapptz
ff9f5749e1 Update copyright year to 2017. 2017-01-20 23:19:19 -05:00
Rapptz
92dd519b1a Remove _get_guild_id from Messageable ABC. 2017-01-14 19:22:26 -05:00
Rapptz
aae8b783e9 VoiceChannel.voice_members is now computed when needed. 2017-01-08 04:31:33 -05:00
Rapptz
d086b5421d Fix NameError when dealing with permission resolution. 2017-01-03 20:17:59 -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
d5b616fa11 Rename MessageChannel abc to Messageable. 2017-01-03 09:52:09 -05:00
Rapptz
6709979831 Move GuildChannel over to abc module. 2017-01-03 09:52:08 -05:00
Rapptz
dceba9d962 Add useful repr to all data classes. 2017-01-03 09:52:06 -05:00
Rapptz
79a49f9145 Absolute import some circular dependencies to appease Python 3.4. 2017-01-03 09:52:02 -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
d1d54a468a Rename Server to Guild everywhere. 2017-01-03 09:51:54 -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
e4b16851bf Slots use tuples instead now. 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
044b0824e6 Begin working on the rewrite. 2017-01-03 09:51:47 -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
26f5bcd725 Fix bug when permission overwrites could be applied out of order.
The bug was due to the fact that the way overwrites work is by doing
a loop of all the values and then applying deny first and then allow.
That way the overwrite is defined if role A and role B deny a
permission but role C allows it (and said member has A, B, C roles)
then the resolution should allow it rather than deny it regardless of
the order of the data it is received in.
2016-09-10 16:11:52 -04:00
Rapptz
18bdd3e7dd Make PrivateChannel.__str__ more useful for groups.
Also demote is_private to a property instead of a slot.
2016-07-15 21:45:23 -04:00
Rapptz
a128249b63 Add support for different message types and call message. 2016-07-13 20:11:18 -04:00
Rapptz
69c506d7ae Handle CHANNEL_UPDATE for group direct messages. 2016-07-13 17:23:35 -04:00