""" UI Styles — стили оформления для разных уровней пользователей """ # ============================================================================= # ЦВЕТА И EMOJI ДЛЯ УРОВНЕЙ # ============================================================================= LEVEL_COLORS = { 'unverified': 'red', # Неверифицированные 'verified': 'green', # Верифицированные 'ig': 'blue', # Инициативная группа 'admin': 'orange', # Админ 'superadmin': 'purple', # Супер-админ (владелец) } LEVEL_EMOJI = { 'unverified': '🔴', 'verified': '🟢', 'ig': '🔵', 'admin': '🟡', 'superadmin': '🟣', } LEVEL_NAMES = { 'unverified': 'НОВИЧОК', 'verified': 'ЖИЛЕЦ', 'ig': 'АКТИВ', 'admin': 'АДМИН', 'superadmin': 'ВЛАДЕЛЕЦ', } # ============================================================================= # ФОРМАТИРОВАНИЕ ТЕКСТА # ============================================================================= def get_colored_header(text: str, level: str) -> str: """ Создать заголовок с emoji (без тегов!) Args: text: текст заголовка level: уровень пользователя Returns: строка с emoji и жирным текстом """ emoji = LEVEL_EMOJI.get(level, '⚪') return f'{emoji} {text}' def get_level_badge(level: str) -> str: """ Получить бейдж уровня (без HTML тегов!) Args: level: уровень пользователя Returns: строка с emoji и названием """ emoji = LEVEL_EMOJI.get(level, '⚪') name = LEVEL_NAMES.get(level, 'НЕИЗВЕСТНО') return f'{emoji} {name}' def get_user_level(user) -> str: """ Определить уровень пользователя Args: user: объект User Returns: строка уровня (unverified, verified, ig, admin, superadmin) """ from config import ADMIN_USER_ID if not user: return 'unverified' # Супер-админ (владелец) if user.user_id == ADMIN_USER_ID: return 'superadmin' # Админ if user.is_admin: return 'admin' # Инициативная группа # Проверяется через InitiativeGroup.is_member() # Но для простоты вернём verified если не ИГ # Верифицированный if user.verified: return 'verified' # Неверифицированный return 'unverified' def get_user_level_with_ig(user, is_ig_member: bool = False) -> str: """ Определить уровень пользователя с учётом ИГ Args: user: объект User is_ig_member: член ИГ Returns: строка уровня """ from config import ADMIN_USER_ID if not user: return 'unverified' # Супер-админ (владелец) if user.user_id == ADMIN_USER_ID: return 'superadmin' # Админ if user.is_admin: return 'admin' # Инициативная группа if is_ig_member and user.verified: return 'ig' # Верифицированный if user.verified: return 'verified' # Неверифицированный return 'unverified'