Browse Source

Added end points + fixed typo

pull/138/head
Luke 6 years ago
parent
commit
a2544c807d
  1. 37
      disco/api/client.py
  2. 4
      disco/api/http.py
  3. 9
      disco/types/guild.py

37
disco/api/client.py

@ -230,7 +230,7 @@ class APIClient(LoggingClass):
self.http(route, obj) self.http(route, obj)
def channels_messages_reactions_delete_all(self, channel, message): def channels_messages_reactions_delete_all(self, channel, message):
self.http(Routes.CHANNEL_MESSAGES_REACTIONS_DELETE_ALL, dict(channel=channel, message=message)) self.http(Routes.CHANNELS_MESSAGES_REACTIONS_DELETE_ALL, dict(channel=channel, message=message))
def channels_permissions_modify(self, channel, permission, allow, deny, typ, reason=None): def channels_permissions_modify(self, channel, permission, allow, deny, typ, reason=None):
self.http(Routes.CHANNELS_PERMISSIONS_MODIFY, dict(channel=channel, permission=permission), json={ self.http(Routes.CHANNELS_PERMISSIONS_MODIFY, dict(channel=channel, permission=permission), json={
@ -291,6 +291,29 @@ class APIClient(LoggingClass):
r = self.http(Routes.GUILDS_DELETE, dict(guild=guild)) r = self.http(Routes.GUILDS_DELETE, dict(guild=guild))
return Guild.create(self.client, r.json()) return Guild.create(self.client, r.json())
def guilds_create(
self,
name=None,
region=None,
icon=None,
verification_level=None,
default_message_notifications=None,
explicit_content_filter=None,
roles=None,
channels=None):
r = self.http(Routes.GUILDS_CREATE, json=optional(
name=name,
region=region,
icon=icon,
verification_level=verification_level,
default_message_notifications=default_message_notifications,
explicit_content_filter=explicit_content_filter,
roles=roles,
channels=channels
))
return Guild.create(self.client, r.json())
def guilds_channels_list(self, guild): def guilds_channels_list(self, guild):
r = self.http(Routes.GUILDS_CHANNELS_LIST, dict(guild=guild)) r = self.http(Routes.GUILDS_CHANNELS_LIST, dict(guild=guild))
return Channel.create_hash(self.client, 'id', r.json(), guild_id=guild) return Channel.create_hash(self.client, 'id', r.json(), guild_id=guild)
@ -375,6 +398,10 @@ class APIClient(LoggingClass):
r = self.http(Routes.GUILDS_BANS_LIST, dict(guild=guild)) r = self.http(Routes.GUILDS_BANS_LIST, dict(guild=guild))
return GuildBan.create_hash(self.client, 'user.id', r.json()) return GuildBan.create_hash(self.client, 'user.id', r.json())
def guilds_ban_get(self, guild, user):
r = self.http(Routes.GUILDS_BAN_GET, dict(guild=guild, user=user))
return GuildBan.create(self.client, r.json())
def guilds_bans_create(self, guild, user, delete_message_days=0, reason=None): def guilds_bans_create(self, guild, user, delete_message_days=0, reason=None):
self.http(Routes.GUILDS_BANS_CREATE, dict(guild=guild, user=user), params={ self.http(Routes.GUILDS_BANS_CREATE, dict(guild=guild, user=user), params={
'delete-message-days': delete_message_days, 'delete-message-days': delete_message_days,
@ -451,10 +478,18 @@ class APIClient(LoggingClass):
r = self.http(Routes.GUILDS_INVITES_LIST, dict(guild=guild)) r = self.http(Routes.GUILDS_INVITES_LIST, dict(guild=guild))
return Invite.create_map(self.client, r.json()) return Invite.create_map(self.client, r.json())
def guilds_vanity_url_get(self, guild):
r = self.http(Routes.GUILDS_VANITY_URL_GET, dict(guild=guild))
return Invite.create(self.client, r.json())
def guilds_webhooks_list(self, guild): def guilds_webhooks_list(self, guild):
r = self.http(Routes.GUILDS_WEBHOOKS_LIST, dict(guild=guild)) r = self.http(Routes.GUILDS_WEBHOOKS_LIST, dict(guild=guild))
return Webhook.create_map(self.client, r.json()) return Webhook.create_map(self.client, r.json())
def guilds_emoji_get(self, guild, emoji):
r = self.http(Routes.GUILDS_EMOJI_GET, dict(guild=guild, emoji=emoji))
return GuildEmoji.create(self.client, r.json())
def guilds_emojis_list(self, guild): def guilds_emojis_list(self, guild):
r = self.http(Routes.GUILDS_EMOJIS_LIST, dict(guild=guild)) r = self.http(Routes.GUILDS_EMOJIS_LIST, dict(guild=guild))
return GuildEmoji.create_map(self.client, r.json()) return GuildEmoji.create_map(self.client, r.json())

4
disco/api/http.py

@ -65,6 +65,7 @@ class Routes(object):
# Guilds # Guilds
GUILDS = '/guilds/{guild}' GUILDS = '/guilds/{guild}'
GUILDS_GET = (HTTPMethod.GET, GUILDS) GUILDS_GET = (HTTPMethod.GET, GUILDS)
GUILDS_CREATE = (HTTPMethod.POST, '/guilds')
GUILDS_MODIFY = (HTTPMethod.PATCH, GUILDS) GUILDS_MODIFY = (HTTPMethod.PATCH, GUILDS)
GUILDS_DELETE = (HTTPMethod.DELETE, GUILDS) GUILDS_DELETE = (HTTPMethod.DELETE, GUILDS)
GUILDS_CHANNELS_LIST = (HTTPMethod.GET, GUILDS + '/channels') GUILDS_CHANNELS_LIST = (HTTPMethod.GET, GUILDS + '/channels')
@ -78,6 +79,7 @@ class Routes(object):
GUILDS_MEMBERS_ME_NICK = (HTTPMethod.PATCH, GUILDS + '/members/@me/nick') GUILDS_MEMBERS_ME_NICK = (HTTPMethod.PATCH, GUILDS + '/members/@me/nick')
GUILDS_MEMBERS_KICK = (HTTPMethod.DELETE, GUILDS + '/members/{member}') GUILDS_MEMBERS_KICK = (HTTPMethod.DELETE, GUILDS + '/members/{member}')
GUILDS_BANS_LIST = (HTTPMethod.GET, GUILDS + '/bans') GUILDS_BANS_LIST = (HTTPMethod.GET, GUILDS + '/bans')
GUILDS_BAN_GET = (HTTPMethod.GET, GUILDS + '/bans/{user}')
GUILDS_BANS_CREATE = (HTTPMethod.PUT, GUILDS + '/bans/{user}') GUILDS_BANS_CREATE = (HTTPMethod.PUT, GUILDS + '/bans/{user}')
GUILDS_BANS_DELETE = (HTTPMethod.DELETE, GUILDS + '/bans/{user}') GUILDS_BANS_DELETE = (HTTPMethod.DELETE, GUILDS + '/bans/{user}')
GUILDS_ROLES_LIST = (HTTPMethod.GET, GUILDS + '/roles') GUILDS_ROLES_LIST = (HTTPMethod.GET, GUILDS + '/roles')
@ -88,6 +90,7 @@ class Routes(object):
GUILDS_PRUNE_COUNT = (HTTPMethod.GET, GUILDS + '/prune') GUILDS_PRUNE_COUNT = (HTTPMethod.GET, GUILDS + '/prune')
GUILDS_PRUNE_BEGIN = (HTTPMethod.POST, GUILDS + '/prune') GUILDS_PRUNE_BEGIN = (HTTPMethod.POST, GUILDS + '/prune')
GUILDS_VOICE_REGIONS_LIST = (HTTPMethod.GET, GUILDS + '/regions') GUILDS_VOICE_REGIONS_LIST = (HTTPMethod.GET, GUILDS + '/regions')
GUILDS_VANITY_URL_GET = (HTTPMethod.GET, GUILDS + '/vanity-url')
GUILDS_INVITES_LIST = (HTTPMethod.GET, GUILDS + '/invites') GUILDS_INVITES_LIST = (HTTPMethod.GET, GUILDS + '/invites')
GUILDS_INTEGRATIONS_LIST = (HTTPMethod.GET, GUILDS + '/integrations') GUILDS_INTEGRATIONS_LIST = (HTTPMethod.GET, GUILDS + '/integrations')
GUILDS_INTEGRATIONS_CREATE = (HTTPMethod.POST, GUILDS + '/integrations') GUILDS_INTEGRATIONS_CREATE = (HTTPMethod.POST, GUILDS + '/integrations')
@ -99,6 +102,7 @@ class Routes(object):
GUILDS_WEBHOOKS_LIST = (HTTPMethod.GET, GUILDS + '/webhooks') GUILDS_WEBHOOKS_LIST = (HTTPMethod.GET, GUILDS + '/webhooks')
GUILDS_EMOJIS_LIST = (HTTPMethod.GET, GUILDS + '/emojis') GUILDS_EMOJIS_LIST = (HTTPMethod.GET, GUILDS + '/emojis')
GUILDS_EMOJIS_CREATE = (HTTPMethod.POST, GUILDS + '/emojis') GUILDS_EMOJIS_CREATE = (HTTPMethod.POST, GUILDS + '/emojis')
GUILDS_EMOJI_GET = (HTTPMethod.GET, GUILDS + '/emojis/{emoji}')
GUILDS_EMOJIS_MODIFY = (HTTPMethod.PATCH, GUILDS + '/emojis/{emoji}') GUILDS_EMOJIS_MODIFY = (HTTPMethod.PATCH, GUILDS + '/emojis/{emoji}')
GUILDS_EMOJIS_DELETE = (HTTPMethod.DELETE, GUILDS + '/emojis/{emoji}') GUILDS_EMOJIS_DELETE = (HTTPMethod.DELETE, GUILDS + '/emojis/{emoji}')
GUILDS_AUDITLOGS_LIST = (HTTPMethod.GET, GUILDS + '/audit-logs') GUILDS_AUDITLOGS_LIST = (HTTPMethod.GET, GUILDS + '/audit-logs')

9
disco/types/guild.py

@ -434,6 +434,9 @@ class Guild(SlottedModel, Permissible):
def get_bans(self): def get_bans(self):
return self.client.api.guilds_bans_list(self.id) return self.client.api.guilds_bans_list(self.id)
def get_ban(self, user):
return self.client.api.guilds_bans_list(self.id, user)
def delete_ban(self, user, **kwargs): def delete_ban(self, user, **kwargs):
self.client.api.guilds_bans_delete(self.id, to_snowflake(user), **kwargs) self.client.api.guilds_bans_delete(self.id, to_snowflake(user), **kwargs)
@ -495,9 +498,15 @@ class Guild(SlottedModel, Permissible):
def get_invites(self): def get_invites(self):
return self.client.api.guilds_invites_list(self.id) return self.client.api.guilds_invites_list(self.id)
def get_vanity_url(self):
return self.client.api.guilds_vanity_url_get(self.id)
def get_emojis(self): def get_emojis(self):
return self.client.api.guilds_emojis_list(self.id) return self.client.api.guilds_emojis_list(self.id)
def get_emoji(self, emoji):
return self.client.api.guilds_emoji_get(self.id, emoji)
def get_icon_url(self, fmt='webp', size=1024): def get_icon_url(self, fmt='webp', size=1024):
if not self.icon: if not self.icon:
return '' return ''

Loading…
Cancel
Save