mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-26 21:14:19 +00:00
40 lines
792 B
Python
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",
|
|
)
|