aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-09-24 04:55:10 -0400
committerRapptz <[email protected]>2017-09-24 04:55:10 -0400
commitf86ac47b2853f1331db450af296666b4d3e9802f (patch)
treed3fe791b7f0b1743638546f09f0f06f81fe79d0a
parentTemporarily add created channels to cache. (diff)
downloaddiscord.py-f86ac47b2853f1331db450af296666b4d3e9802f.tar.xz
discord.py-f86ac47b2853f1331db450af296666b4d3e9802f.zip
Don't use Bulk Channel Edit endpoint if not actually moving channels.
Should make the category-only edit cases more straightforward since it does not rely on other guilds in the cache, outside of the category itself.
-rw-r--r--discord/abc.py5
-rw-r--r--discord/http.py2
2 files changed, 5 insertions, 2 deletions
diff --git a/discord/abc.py b/discord/abc.py
index e836dda3..83df3fab 100644
--- a/discord/abc.py
+++ b/discord/abc.py
@@ -239,7 +239,10 @@ class GuildChannel:
position = options.pop('position')
except KeyError:
if parent_id is not _undefined:
- yield from self._move(self.position, parent_id=parent_id, lock_permissions=lock_permissions, reason=reason)
+ if lock_permissions:
+ category = self.guild.get_channel(parent_id)
+ options['permission_overwrites'] = [c._asdict() for c in category._overwrites]
+ options['parent_id'] = parent_id
elif lock_permissions and self.category_id is not None:
# if we're syncing permissions on a pre-existing channel category without changing it
# we need to update the permissions to point to the pre-existing category
diff --git a/discord/http.py b/discord/http.py
index 1c020ee1..ab2534e2 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -500,7 +500,7 @@ class HTTPClient:
def edit_channel(self, channel_id, *, reason=None, **options):
r = Route('PATCH', '/channels/{channel_id}', channel_id=channel_id)
- valid_keys = ('name', 'topic', 'bitrate', 'nsfw', 'user_limit', 'position', 'permission_overwrites')
+ valid_keys = ('name', 'parent_id', 'topic', 'bitrate', 'nsfw', 'user_limit', 'position', 'permission_overwrites')
payload = {
k: v for k, v in options.items() if k in valid_keys
}