Merge branch 'hotfix-icons-history' into 'master'

fix embeds, emotes, history and other stuff

See merge request litecord/litecord!22
This commit is contained in:
Luna 2019-03-01 23:46:32 +00:00
commit e818551d16
6 changed files with 19 additions and 10 deletions

View File

@ -407,6 +407,9 @@ async def _create_message(channel_id):
await _dm_pre_dispatch(channel_id, user_id) await _dm_pre_dispatch(channel_id, user_id)
await _dm_pre_dispatch(channel_id, guild_id) await _dm_pre_dispatch(channel_id, guild_id)
if payload['webhook_id'] == None:
payload.pop('webhook_id', None)
await app.dispatcher.dispatch('channel', channel_id, await app.dispatcher.dispatch('channel', channel_id,
'MESSAGE_CREATE', payload) 'MESSAGE_CREATE', payload)

View File

@ -27,7 +27,6 @@ async def send_icon(scope, key, icon_hash, **kwargs):
"""Send an icon.""" """Send an icon."""
icon = await app.icons.generic_get( icon = await app.icons.generic_get(
scope, key, icon_hash, **kwargs) scope, key, icon_hash, **kwargs)
if not icon: if not icon:
return '', 404 return '', 404

View File

@ -46,7 +46,7 @@ class EmbedURL:
EMBED_FOOTER = { EMBED_FOOTER = {
'text': { 'text': {
'type': 'string', 'minlength': 1, 'maxlength': 128, 'required': True}, 'type': 'string', 'minlength': 1, 'maxlength': 1024, 'required': True},
'icon_url': { 'icon_url': {
'coerce': EmbedURL, 'required': False, 'coerce': EmbedURL, 'required': False,
@ -65,7 +65,7 @@ EMBED_THUMBNAIL = EMBED_IMAGE
EMBED_AUTHOR = { EMBED_AUTHOR = {
'name': { 'name': {
'type': 'string', 'minlength': 1, 'maxlength': 128, 'required': False 'type': 'string', 'minlength': 1, 'maxlength': 256, 'required': False
}, },
'url': { 'url': {
'coerce': EmbedURL, 'required': False, 'coerce': EmbedURL, 'required': False,
@ -79,10 +79,10 @@ EMBED_AUTHOR = {
EMBED_FIELD = { EMBED_FIELD = {
'name': { 'name': {
'type': 'string', 'minlength': 1, 'maxlength': 128, 'required': True 'type': 'string', 'minlength': 1, 'maxlength': 256, 'required': True
}, },
'value': { 'value': {
'type': 'string', 'minlength': 1, 'maxlength': 128, 'required': True 'type': 'string', 'minlength': 1, 'maxlength': 1024, 'required': True
}, },
'inline': { 'inline': {
'type': 'boolean', 'required': False, 'default': True, 'type': 'boolean', 'required': False, 'default': True,
@ -91,10 +91,10 @@ EMBED_FIELD = {
EMBED_OBJECT = { EMBED_OBJECT = {
'title': { 'title': {
'type': 'string', 'minlength': 1, 'maxlength': 128, 'required': False}, 'type': 'string', 'minlength': 1, 'maxlength': 256, 'required': False},
# NOTE: type set by us # NOTE: type set by us
'description': { 'description': {
'type': 'string', 'minlength': 1, 'maxlength': 1024, 'required': False, 'type': 'string', 'minlength': 1, 'maxlength': 2048, 'required': False,
}, },
'url': { 'url': {
'coerce': EmbedURL, 'required': False, 'coerce': EmbedURL, 'required': False,

View File

@ -274,8 +274,6 @@ class IconManager:
async def generic_get(self, scope, key, icon_hash, **kwargs) -> Icon: async def generic_get(self, scope, key, icon_hash, **kwargs) -> Icon:
"""Get any icon.""" """Get any icon."""
if icon_hash is None:
return None
log.debug('GET {} {} {}', scope, key, icon_hash) log.debug('GET {} {} {}', scope, key, icon_hash)
key = str(key) key = str(key)

View File

@ -604,8 +604,10 @@ class Storage:
return [r[0] for r in rows] return [r[0] for r in rows]
async def _msg_regex(self, regex, func, content) -> List[Dict]: async def _msg_regex(self, regex, func, content) -> List[Dict]:
res = [] if content is None:
return []
res = []
for match in regex.finditer(content): for match in regex.finditer(content):
found_id = match.group(1) found_id = match.group(1)
@ -763,6 +765,9 @@ class Storage:
res['type'] = res['message_type'] res['type'] = res['message_type']
res.pop('message_type') res.pop('message_type')
if res['content'] is None:
res['content'] = ""
channel_id = int(row['channel_id']) channel_id = int(row['channel_id'])
content = row['content'] content = row['content']
guild_id = await self.guild_from_channel(channel_id) guild_id = await self.guild_from_channel(channel_id)

View File

@ -37,6 +37,10 @@ class Color:
"""Give the actual RGB integer encoding this color.""" """Give the actual RGB integer encoding this color."""
return int('%02x%02x%02x' % (self.red, self.green, self.blue), 16) return int('%02x%02x%02x' % (self.red, self.green, self.blue), 16)
@property
def to_json(self):
return self.value
def __int__(self): def __int__(self):
return self.value return self.value