mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-16 10:49:24 +00:00
Fix bug with Client.move_channel and Client.move_role.
This commit is contained in:
parent
793cbedd0d
commit
5a6a3574b1
@ -15,7 +15,7 @@ __title__ = 'discord'
|
||||
__author__ = 'Rapptz'
|
||||
__license__ = 'MIT'
|
||||
__copyright__ = 'Copyright 2015-2016 Rapptz'
|
||||
__version__ = '0.16.3'
|
||||
__version__ = '0.16.4'
|
||||
|
||||
from .client import Client, AppInfo, ChannelPermissions
|
||||
from .user import User
|
||||
@ -43,7 +43,7 @@ import logging
|
||||
|
||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro releaselevel serial')
|
||||
|
||||
version_info = VersionInfo(major=0, minor=16, micro=3, releaselevel='final', serial=0)
|
||||
version_info = VersionInfo(major=0, minor=16, micro=4, releaselevel='final', serial=0)
|
||||
|
||||
try:
|
||||
from logging import NullHandler
|
||||
|
@ -2042,7 +2042,6 @@ class Client:
|
||||
if position < 0:
|
||||
raise InvalidArgument('Channel position cannot be less than 0.')
|
||||
|
||||
url = '{0}/{1.server.id}/channels'.format(self.http.GUILDS, channel)
|
||||
channels = [c for c in channel.server.channels if c.type is channel.type]
|
||||
|
||||
if position >= len(channels):
|
||||
@ -2061,7 +2060,7 @@ class Client:
|
||||
channels.insert(position, channel)
|
||||
|
||||
payload = [{'id': c.id, 'position': index } for index, c in enumerate(channels)]
|
||||
yield from self.http.patch(url, json=payload, bucket='move_channel')
|
||||
yield from self.http.move_channel_position(channel.server.id, payload)
|
||||
|
||||
@asyncio.coroutine
|
||||
def create_channel(self, server, name, *overwrites, type=None):
|
||||
@ -2781,8 +2780,6 @@ class Client:
|
||||
if role.position == position:
|
||||
return # Save discord the extra request.
|
||||
|
||||
url = '{0}/{1.id}/roles'.format(self.http.GUILDS, server)
|
||||
|
||||
change_range = range(min(role.position, position), max(role.position, position) + 1)
|
||||
|
||||
roles = [r.id for r in sorted(filter(lambda x: (x.position in change_range) and x != role, server.roles), key=lambda x: x.position)]
|
||||
@ -2793,7 +2790,7 @@ class Client:
|
||||
roles.append(role.id)
|
||||
|
||||
payload = [{"id": z[0], "position": z[1]} for z in zip(roles, change_range)]
|
||||
yield from self.http.patch(url, json=payload, bucket='move_role')
|
||||
yield from self.http.move_role_position(server.id, payload)
|
||||
|
||||
@asyncio.coroutine
|
||||
def edit_role(self, server, role, **fields):
|
||||
|
@ -468,8 +468,6 @@ class HTTPClient:
|
||||
# Channel management
|
||||
|
||||
def edit_channel(self, channel_id, **options):
|
||||
url = '{0.CHANNELS}/{1}'.format(self, channel_id)
|
||||
|
||||
valid_keys = ('name', 'topic', 'bitrate', 'user_limit', 'position')
|
||||
payload = {
|
||||
k: v for k, v in options.items() if k in valid_keys
|
||||
@ -477,6 +475,10 @@ class HTTPClient:
|
||||
|
||||
return self.request(Route('PATCH', '/channels/{channel_id}', channel_id=channel_id), json=payload)
|
||||
|
||||
def move_channel_position(self, guild_id, positions):
|
||||
r = Route('PATCH', '/guilds/{guild_id}/channels', guild_id=guild_id)
|
||||
return self.request(r, json=positions)
|
||||
|
||||
def create_channel(self, guild_id, name, channe_type, permission_overwrites=None):
|
||||
payload = {
|
||||
'name': name,
|
||||
@ -600,6 +602,10 @@ class HTTPClient:
|
||||
r = Route('POST', '/guilds/{guild_id}/roles', guild_id=guild_id)
|
||||
return self.request(r)
|
||||
|
||||
def move_role_position(self, guild_id, positions):
|
||||
r = Route('PATCH', '/guilds/{guild_id}/roles', guild_id=guild_id)
|
||||
return self.request(r, json=positions)
|
||||
|
||||
def add_role(self, guild_id, user_id, role_id):
|
||||
r = Route('PUT', '/guilds/{guild_id}/members/{user_id}/roles/{role_id}',
|
||||
guild_id=guild_id, user_id=user_id, role_id=role_id)
|
||||
|
Loading…
x
Reference in New Issue
Block a user