1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 11:34:18 +00:00
royalnet/royalpack/bolts/target.py

40 lines
792 B
Python

"""
"""
from __future__ import annotations
import functools
import logging
import royalnet.engineer as engi
import sqlalchemy.orm as so
import royalpack.database as db
log = logging.getLogger(__name__)
def with_target():
"""
.. todo:: Document this.
"""
def decorator(f):
@functools.wraps(f)
async def decorated(_msg: engi.Message, _session: so.Session, target: str, **f_kwargs):
user = db.UserAlias.find(session=_session, string=target)
if user is None:
await _msg.reply(text=f"⚠️ L'utente specificato non esiste.")
return
return await f(_msg=_msg, _session=_session, **f_kwargs, _target=user)
return decorated
return decorator
__all__ = (
"with_target",
)