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 .members import bp as guild_members
|
||||||
from .channels import bp as guild_channels
|
from .channels import bp as guild_channels
|
||||||
from .mod import bp as guild_mod
|
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:
|
if user_id:
|
||||||
drow['owner'] = drow['owner_id'] == str(user_id)
|
drow['owner'] = drow['owner_id'] == str(user_id)
|
||||||
|
|
||||||
# TODO: emojis
|
|
||||||
drow['emojis'] = []
|
|
||||||
return drow
|
return drow
|
||||||
|
|
||||||
async def get_user_guilds(self, user_id: int) -> List[int]:
|
async def get_user_guilds(self, user_id: int) -> List[int]:
|
||||||
|
|
@ -511,6 +509,8 @@ class Storage:
|
||||||
mids, guild_id
|
mids, guild_id
|
||||||
),
|
),
|
||||||
|
|
||||||
|
'emojis': await self.get_guild_emojis(guild_id),
|
||||||
|
|
||||||
# TODO: voice state management
|
# TODO: voice state management
|
||||||
'voice_states': [],
|
'voice_states': [],
|
||||||
}}
|
}}
|
||||||
|
|
@ -823,3 +823,43 @@ class Storage:
|
||||||
parties.remove(user_id)
|
parties.remove(user_id)
|
||||||
|
|
||||||
return parties[0]
|
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
|
# for code readability if people want to dig through
|
||||||
# the codebase.
|
# the codebase.
|
||||||
from litecord.blueprints.guild import (
|
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 (
|
from litecord.blueprints.channel import (
|
||||||
|
|
@ -89,6 +90,7 @@ def set_blueprints(app_):
|
||||||
guild_members: '/guilds',
|
guild_members: '/guilds',
|
||||||
guild_channels: '/guilds',
|
guild_channels: '/guilds',
|
||||||
guild_mod: '/guilds',
|
guild_mod: '/guilds',
|
||||||
|
guild_emoji: '/guilds',
|
||||||
|
|
||||||
channels: '/channels',
|
channels: '/channels',
|
||||||
channel_messages: '/channels',
|
channel_messages: '/channels',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue