Browse Source

Add Guild.splash_url_as

pull/1164/merge
Matt (IPv4) 7 years ago
committed by Rapptz
parent
commit
3727ea9811
  1. 39
      discord/guild.py
  2. 4
      discord/utils.py

39
discord/guild.py

@ -404,10 +404,10 @@ class Guild(Hashable):
return self.icon_url_as() return self.icon_url_as()
def icon_url_as(self, *, format='webp', size=1024): def icon_url_as(self, *, format='webp', size=1024):
"""Returns a friendly URL version of the guild's icon. Returns and empty string if it has no icon. """Returns a friendly URL version of the guild's icon. Returns an empty string if it has no icon.
The format must be one of 'webp', 'jpeg', 'jpg', or 'png'. The The format must be one of 'webp', 'jpeg', 'jpg', or 'png'. The
size must be a power of 2 between 16 and 1024. size must be a power of 2 between 16 and 2048.
Parameters Parameters
----------- -----------
@ -427,7 +427,7 @@ class Guild(Hashable):
Bad image format passed to ``format`` or invalid ``size``. Bad image format passed to ``format`` or invalid ``size``.
""" """
if not valid_icon_size(size): if not valid_icon_size(size):
raise InvalidArgument("size must be a power of 2 between 16 and 1024") raise InvalidArgument("size must be a power of 2 between 16 and 2048")
if format not in VALID_ICON_FORMATS: if format not in VALID_ICON_FORMATS:
raise InvalidArgument("format must be one of {}".format(VALID_ICON_FORMATS)) raise InvalidArgument("format must be one of {}".format(VALID_ICON_FORMATS))
@ -439,9 +439,40 @@ class Guild(Hashable):
@property @property
def splash_url(self): def splash_url(self):
"""Returns the URL version of the guild's invite splash. Returns an empty string if it has no splash.""" """Returns the URL version of the guild's invite splash. Returns an empty string if it has no splash."""
return self.icon_url_as()
def splash_url_as(self, *, format='webp', size=2048):
"""Returns a friendly URL version of the guild's invite splash. Returns an empty string if it has no splash.
The format must be one of 'webp', 'jpeg', 'jpg', or 'png'. The
size must be a power of 2 between 16 and 2048.
Parameters
-----------
format: str
The format to attempt to convert the splash to.
size: int
The size of the image to display.
Returns
--------
str
The resulting CDN URL.
Raises
------
InvalidArgument
Bad image format passed to ``format`` or invalid ``size``.
"""
if not valid_icon_size(size):
raise InvalidArgument("size must be a power of 2 between 16 and 2048")
if format not in VALID_ICON_FORMATS:
raise InvalidArgument("format must be one of {}".format(VALID_ICON_FORMATS))
if self.splash is None: if self.splash is None:
return '' return ''
return 'https://cdn.discordapp.com/splashes/{0.id}/{0.splash}.jpg?size=2048'.format(self)
return 'https://cdn.discordapp.com/splashes/{0.id}/{0.splash}.{1}?size={2}'.format(self, format, size)
@property @property
def member_count(self): def member_count(self):

4
discord/utils.py

@ -290,8 +290,8 @@ async def sane_wait_for(futures, *, timeout, loop):
raise asyncio.TimeoutError() raise asyncio.TimeoutError()
def valid_icon_size(size): def valid_icon_size(size):
"""Icons must be power of 2 within [16, 1024].""" """Icons must be power of 2 within [16, 2048]."""
return ((size != 0) and not (size & (size - 1))) and size in range(16, 1025) return ((size != 0) and not (size & (size - 1))) and size in range(16, 2049)
class SnowflakeList(array.array): class SnowflakeList(array.array):
"""Internal data storage class to efficiently store a list of snowflakes. """Internal data storage class to efficiently store a list of snowflakes.

Loading…
Cancel
Save