mirror of https://gitlab.com/litecord/litecord.git
guild: add emoji blueprint
- storage: add get_emoji, get_guild_emojis
This commit is contained in:
parent
a7f8852324
commit
64af426035
|
|
@ -2,5 +2,7 @@ from .roles import bp as guild_roles
|
|||
from .members import bp as guild_members
|
||||
from .channels import bp as guild_channels
|
||||
from .mod import bp as guild_mod
|
||||
from .emoji import bp as guild_emoji
|
||||
|
||||
__all__ = ['guild_roles', 'guild_members', 'guild_channels', 'guild_mod']
|
||||
__all__ = ['guild_roles', 'guild_members', 'guild_channels', 'guild_mod',
|
||||
'guild_emoji']
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
from quart import Blueprint, jsonify, current_app as app
|
||||
|
||||
from litecord.auth import token_check
|
||||
from litecord.blueprints.checks import guild_check
|
||||
|
||||
bp = Blueprint('guild.emoji', __name__)
|
||||
|
||||
|
||||
@bp.route('/<int:guild_id>/emojis', methods=['GET'])
|
||||
async def _get_guild_emoji(guild_id):
|
||||
user_id = await token_check()
|
||||
await guild_check(user_id, guild_id)
|
||||
return jsonify(
|
||||
await app.storage.get_guild_emojis(guild_id)
|
||||
)
|
||||
|
||||
|
||||
@bp.route('/<int:guild_id>/emojis/<int:emoji_id>', methods=['GET'])
|
||||
async def _get_guild_emoji_one(guild_id, emoji_id):
|
||||
user_id = await token_check()
|
||||
await guild_check(user_id, guild_id)
|
||||
return jsonify(
|
||||
await app.storage.get_emoji(emoji_id)
|
||||
)
|
||||
|
|
@ -145,8 +145,6 @@ class Storage:
|
|||
if user_id:
|
||||
drow['owner'] = drow['owner_id'] == str(user_id)
|
||||
|
||||
# TODO: emojis
|
||||
drow['emojis'] = []
|
||||
return drow
|
||||
|
||||
async def get_user_guilds(self, user_id: int) -> List[int]:
|
||||
|
|
@ -511,6 +509,8 @@ class Storage:
|
|||
mids, guild_id
|
||||
),
|
||||
|
||||
'emojis': await self.get_guild_emojis(guild_id),
|
||||
|
||||
# TODO: voice state management
|
||||
'voice_states': [],
|
||||
}}
|
||||
|
|
@ -823,3 +823,43 @@ class Storage:
|
|||
parties.remove(user_id)
|
||||
|
||||
return parties[0]
|
||||
|
||||
async def get_emoji(self, emoji_id: int) -> Dict:
|
||||
"""Get a single emoji."""
|
||||
row = await self.db.fetchrow("""
|
||||
SELECT id::text, name, animated, managed,
|
||||
require_colons, uploader_id
|
||||
FROM guild_emoji
|
||||
WHERE id = $1
|
||||
""", emoji_id)
|
||||
|
||||
if not row:
|
||||
return
|
||||
|
||||
drow = dict(row)
|
||||
|
||||
# ????
|
||||
drow['roles'] = []
|
||||
|
||||
uploader_id = drow.pop('uploader_id')
|
||||
drow['user'] = await self.get_user(uploader_id)
|
||||
|
||||
return drow
|
||||
|
||||
async def get_guild_emojis(self, guild_id: int):
|
||||
"""Get a list of all emoji objects in a guild."""
|
||||
rows = await self.db.fetch("""
|
||||
SELECT id
|
||||
FROM guild_emojis
|
||||
WHERE guild_id = $1
|
||||
""", guild_id)
|
||||
|
||||
emoji_ids = [r['id'] for r in rows]
|
||||
|
||||
res = []
|
||||
|
||||
for emoji_id in emoji_ids:
|
||||
emoji = await self.get_emoji(emoji_id)
|
||||
res.append(emoji)
|
||||
|
||||
return res
|
||||
|
|
|
|||
4
run.py
4
run.py
|
|
@ -21,7 +21,8 @@ from litecord.blueprints import (
|
|||
# for code readability if people want to dig through
|
||||
# the codebase.
|
||||
from litecord.blueprints.guild import (
|
||||
guild_roles, guild_members, guild_channels, guild_mod
|
||||
guild_roles, guild_members, guild_channels, guild_mod,
|
||||
guild_emoji
|
||||
)
|
||||
|
||||
from litecord.blueprints.channel import (
|
||||
|
|
@ -89,6 +90,7 @@ def set_blueprints(app_):
|
|||
guild_members: '/guilds',
|
||||
guild_channels: '/guilds',
|
||||
guild_mod: '/guilds',
|
||||
guild_emoji: '/guilds',
|
||||
|
||||
channels: '/channels',
|
||||
channel_messages: '/channels',
|
||||
|
|
|
|||
Loading…
Reference in New Issue