All checks were successful
Build and Push Docker Images / build (push) Successful in 1m28s
- Рефакторинг Telegram бота на модульную структуру для удобства поддержки и расширения - Создан общий RabbitMQ клиент для Flask и Telegram компонентов - Подготовлена базовая архитектура для будущего масштабирования и новых функций Signed-off-by: UdoChudo <stream@udochudo.ru>
31 lines
996 B
Python
31 lines
996 B
Python
# app/bot/utils/logging.py
|
||
from datetime import datetime, timezone
|
||
|
||
from flask import Flask
|
||
|
||
from app.extensions.db import db
|
||
from app.models import UserEvents
|
||
from telebot import logger
|
||
|
||
def log_user_event(chat_id: int, app: Flask, username: str, action: str) -> None:
|
||
"""
|
||
Логирует действие пользователя в базу с использованием ORM.
|
||
"""
|
||
try:
|
||
with app.app_context():
|
||
timestamp = datetime.now(timezone.utc)
|
||
|
||
event = UserEvents(
|
||
chat_id=chat_id,
|
||
telegram_id=username,
|
||
action=action,
|
||
timestamp=timestamp
|
||
)
|
||
db.session.add(event)
|
||
db.session.commit()
|
||
|
||
formatted_time = timestamp.strftime('%Y-%m-%d %H:%M:%S')
|
||
logger.info(f"User event logged: {chat_id} (@{username}) - {action} at {formatted_time}.")
|
||
except Exception as e:
|
||
logger.error(f"Error logging user event: {e}")
|