/
fastnets
/
happines_course
Обзор
Документация
Войти
/
fastnets
/
happines_course
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
analytics/statistics.py
64 строки
2 KB
Ivan Kostin
Telegram bot with GigaChat
20 янв 2026, 23:02
20 янв 2026, 23:02
d8f6192
Код
Авторство
О чём код?
# ⭐ ДОБАВИТЬ В КОНЕЦ ФАЙЛА analytics_domain/statistics.py from dataclasses import dataclass, field from datetime import datetime import uuid import logging logger = logging.getLogger(__name__) @dataclass class Statistics: """Класс для логирования статистики""" user_id: int entity_count: int event_type: str = "telegram_synonym" timestamp: datetime = field(default_factory=datetime.now) id: str = field(default_factory=lambda: str(uuid.uuid4())) def save(self): """Сохранить запись""" if not hasattr(Statistics, '_storage'): Statistics._storage = [] Statistics._storage.append(self) return self @staticmethod def log_synonym_generation(user_id: int, entity_count: int): """Логировать генерацию синонимов""" record = Statistics( user_id=user_id, entity_count=entity_count, event_type="telegram_synonym" ) record.save() logger.info(f"📊 Логировано: пользователь {user_id} создал {entity_count} синонимов") return record @staticmethod def get_user_stats(user_id: int): """Получить статистику пользователя""" if not hasattr(Statistics, '_storage'): return [] return [s for s in Statistics._storage if s.user_id == user_id] @staticmethod def get_all_stats(): """Получить всю статистику""" if not hasattr(Statistics, '_storage'): return [] return Statistics._storage @staticmethod def get_total_generations(user_id: int) -> int: """Получить общее количество сгенерированных синонимов""" user_stats = Statistics.get_user_stats(user_id) return sum(s.entity_count for s in user_stats) @staticmethod def get_user_events_count(user_id: int) -> int: """Получить количество событий пользователя""" return len(Statistics.get_user_stats(user_id)) _storage = []