mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-23 19:44:20 +00:00
Some stuff
This commit is contained in:
parent
87569fd364
commit
8af65a029c
6 changed files with 15 additions and 36 deletions
|
@ -2,8 +2,7 @@ from typing import *
|
||||||
import royalnet
|
import royalnet
|
||||||
import royalnet.commands as rc
|
import royalnet.commands as rc
|
||||||
import royalnet.utils as ru
|
import royalnet.utils as ru
|
||||||
from ..tables.telegram import Telegram
|
from ..tables import User
|
||||||
from ..tables.discord import Discord
|
|
||||||
|
|
||||||
|
|
||||||
class RoyalnetaliasesCommand(rc.Command):
|
class RoyalnetaliasesCommand(rc.Command):
|
||||||
|
@ -14,11 +13,14 @@ class RoyalnetaliasesCommand(rc.Command):
|
||||||
syntax: str = ""
|
syntax: str = ""
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
||||||
author = await data.get_author(error_if_none=True)
|
if name := args.optional(0) is not None:
|
||||||
|
user = await User.find(alchemy=self.alchemy, session=data.session, alias=name)
|
||||||
|
else:
|
||||||
|
user = await data.get_author(error_if_none=True)
|
||||||
|
|
||||||
msg = [
|
msg = [
|
||||||
"👤 You currently have these aliases:",
|
"👤 You currently have these aliases:",
|
||||||
*list(map(lambda r: f"- {r}", author.aliases))
|
*list(map(lambda r: f"- {r}", user.aliases))
|
||||||
]
|
]
|
||||||
|
|
||||||
await data.reply("\n".join(msg))
|
await data.reply("\n".join(msg))
|
||||||
|
|
|
@ -2,8 +2,7 @@ from typing import *
|
||||||
import royalnet
|
import royalnet
|
||||||
import royalnet.commands as rc
|
import royalnet.commands as rc
|
||||||
import royalnet.utils as ru
|
import royalnet.utils as ru
|
||||||
from ..tables.telegram import Telegram
|
from ..tables import User
|
||||||
from ..tables.discord import Discord
|
|
||||||
|
|
||||||
|
|
||||||
class RoyalnetrolesCommand(rc.Command):
|
class RoyalnetrolesCommand(rc.Command):
|
||||||
|
@ -14,11 +13,14 @@ class RoyalnetrolesCommand(rc.Command):
|
||||||
syntax: str = ""
|
syntax: str = ""
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
||||||
author = await data.get_author(error_if_none=True)
|
if name := args.optional(0) is not None:
|
||||||
|
user = await User.find(alchemy=self.alchemy, session=data.session, alias=name)
|
||||||
|
else:
|
||||||
|
user = await data.get_author(error_if_none=True)
|
||||||
|
|
||||||
msg = [
|
msg = [
|
||||||
"👤 You currently have these roles:",
|
"👤 You currently have these roles:",
|
||||||
*list(map(lambda r: f"- {r}", author.roles))
|
*list(map(lambda r: f"- {r}", user.roles))
|
||||||
]
|
]
|
||||||
|
|
||||||
await data.reply("\n".join(msg))
|
await data.reply("\n".join(msg))
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
from starlette.responses import *
|
|
||||||
from royalnet.utils import *
|
|
||||||
from royalnet.backpack.tables import *
|
|
||||||
from royalnet.constellation.api import *
|
|
||||||
|
|
||||||
|
|
||||||
class ApiAliasListStar(ApiStar):
|
|
||||||
path = "/api/alias/list/v1"
|
|
||||||
|
|
||||||
summary = "Get all aliases of the specified user."
|
|
||||||
|
|
||||||
tags = ["alias"]
|
|
||||||
|
|
||||||
parameters = {
|
|
||||||
"user_id": "The id of the user to get the aliases of."
|
|
||||||
}
|
|
||||||
|
|
||||||
async def api(self, data: ApiData) -> JSON:
|
|
||||||
aliases: typing.List[Alias] = await asyncify(
|
|
||||||
data.session
|
|
||||||
.query(self.alchemy.get(Alias))
|
|
||||||
.filter_by(user_id=data["user_id"])
|
|
||||||
.all
|
|
||||||
)
|
|
||||||
return [alias.alias for alias in aliases]
|
|
|
@ -15,7 +15,7 @@ class ApiUserFindStar(ApiStar):
|
||||||
}
|
}
|
||||||
|
|
||||||
async def api(self, data: ApiData) -> dict:
|
async def api(self, data: ApiData) -> dict:
|
||||||
user = await Alias.find_user(self.alchemy, data.session, data["alias"])
|
user = await User.find(self.alchemy, data.session, data["alias"])
|
||||||
if user is None:
|
if user is None:
|
||||||
raise NotFoundError("No such user.")
|
raise NotFoundError("No such user.")
|
||||||
return user.json()
|
return user.json()
|
||||||
|
|
|
@ -11,6 +11,6 @@ class ApiUserListStar(ApiStar):
|
||||||
|
|
||||||
tags = ["user"]
|
tags = ["user"]
|
||||||
|
|
||||||
async def api(self, data: ApiData) -> dict:
|
async def api(self, data: ApiData) -> JSON:
|
||||||
users: typing.List[User] = await asyncify(data.session.query(self.alchemy.get(User)).all)
|
users: typing.List[User] = await asyncify(data.session.query(self.alchemy.get(User)).all)
|
||||||
return [user.json() for user in users]
|
return [user.json() for user in users]
|
||||||
|
|
|
@ -37,7 +37,7 @@ class User:
|
||||||
return Column(String)
|
return Column(String)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def find_user(alchemy, session, alias: Union[str, int]):
|
async def find(alchemy, session, alias: Union[str, int]):
|
||||||
result = await ru.asyncify(session.query(alchemy.get(Alias)).filter_by(alias=alias.lower()).one_or_none)
|
result = await ru.asyncify(session.query(alchemy.get(Alias)).filter_by(alias=alias.lower()).one_or_none)
|
||||||
if result is not None:
|
if result is not None:
|
||||||
result = result.user
|
result = result.user
|
||||||
|
|
Loading…
Reference in a new issue