images: add always_icon kwarg to put()

- guilds: use always_icon
This commit is contained in:
Luna Mendes 2018-11-17 18:26:42 -03:00
parent 1e368f8cc9
commit 630db1e1e9
2 changed files with 11 additions and 3 deletions

View File

@ -96,7 +96,7 @@ async def put_guild_icon(guild_id: int, icon: str):
else None)
return await app.icons.put(
'guild', guild_id, encoded, size=(128, 128))
'guild', guild_id, encoded, size=(128, 128), always_icon=True)
@bp.route('', methods=['POST'])

View File

@ -138,6 +138,14 @@ def _gen_update_sql(scope: str) -> str:
"""
def _invalid(kwargs: dict):
"""Send an invalid value."""
if kwargs.get('always_icon', False):
return None
return Icon(None, None, '')
class IconManager:
"""Main icon manager."""
def __init__(self, app):
@ -205,7 +213,7 @@ class IconManager:
b64_data: str, **kwargs) -> Icon:
"""Insert an icon."""
if b64_data is None:
return None
return _invalid(kwargs)
mime, raw_data = parse_data_uri(b64_data)
data_fd = BytesIO(raw_data)
@ -214,7 +222,7 @@ class IconManager:
extension = _get_ext(mime)
if 'bsize' in kwargs and len(raw_data) > kwargs['bsize']:
return None
return _invalid(kwargs)
if 'size' in kwargs:
image = Image.open(data_fd)