Files
loon-backend/loon/web/logs/service.py
T
2026-09-04 23:41:35 +02:00

33 lines
1022 B
Python

import asyncio
from sqlalchemy import select
from sqlalchemy.orm import Session
from loon.web.db import engine
from loon.web.logs.models import LogType, LogEntry
from loon.web.logs.types import LogTypeEnum
def player_tag(uuid: str, username: str) -> str:
return f"[player:{uuid}]{username}[/player]"
def _write_log(log_type: LogTypeEnum, message: str) -> None:
with Session(engine) as session:
statement = select(LogType).where(LogType.code == log_type.value)
log_type_object = session.execute(statement).scalars().first()
if not log_type_object:
log_type_object = LogType(code=log_type.value)
session.add(log_type_object)
session.commit()
session.refresh(log_type_object)
log_entry = LogEntry(log_type_id=log_type_object.id, message=message)
session.add(log_entry)
session.commit()
async def write_log(log_type: LogTypeEnum, message: str) -> None:
await asyncio.to_thread(_write_log, log_type, message)