domovoy_bot/utils/ui_styles.py

79 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
LKM37 REBORN: UI Core Styles
Централизованное управление стилями, префиксами и визуальным кодом дома.
"""
# =============================================================================
# БРЕНДИНГ LKM37
# =============================================================================
LKM37_PREFIX = {
'system': '<b>[LKM37:SYSTEM]</b> >_ ',
'resident': '<b>[LKM37:RESIDENT]</b> >_ ',
'ig': '<b>[LKM37:TEAM]</b> >_ ',
'admin': '<b>[LKM37:ADMIN]</b> >_ ',
'root': '<b>[LKM37:ROOT]</b> >_ ',
'alert': '<b>[LKM37:ALERT]</b> ⚠️ ',
'digest': '<b>[LKM37:DIGEST]</b> 📊 ',
}
# =============================================================================
# УРОВНИ ДОСТУПА И ВИЗУАЛ
# =============================================================================
LEVEL_EMOJI = {
'unverified': '', # GUEST
'verified': '🟢', # RESIDENT
'ig': '🔵', # TEAM (IG)
'admin': '🟠', # ADMIN
'superadmin': '🔴', # ROOT (OWNER)
}
LEVEL_NAMES = {
'unverified': 'GUEST',
'verified': 'RESIDENT',
'ig': 'TEAM',
'admin': 'ADMIN',
'superadmin': 'ROOT',
}
# =============================================================================
# ГРИД-СТАНДАРТЫ ДЛЯ КНОПОК
# =============================================================================
# Стандартная ширина меню - 2 колонки.
# Кнопки "Назад" и "Помощь" всегда внизу.
# =============================================================================
# ФУНКЦИИ ФОРМАТИРОВАНИЯ
# =============================================================================
def fmt_msg(text: str, category: str = 'system') -> str:
"""
Форматирование сообщения с префиксом LKM37
"""
prefix = LKM37_PREFIX.get(category, LKM37_PREFIX['system'])
return f"{prefix}{text}"
def get_level_badge(level: str) -> str:
"""
Получить стильный бейдж уровня
"""
emoji = LEVEL_EMOJI.get(level, '')
name = LEVEL_NAMES.get(level, 'UNKNOWN')
return f"<b>[{emoji} LKM37:{name}]</b>"
def get_user_level_key(user_id: int, is_admin: bool = False, is_verified: bool = False, is_ig: bool = False) -> str:
"""
Определить строковый ключ уровня пользователя
"""
from config import ADMIN_USER_ID
if user_id == ADMIN_USER_ID:
return 'superadmin'
if is_admin:
return 'admin'
if is_ig:
return 'ig'
if is_verified:
return 'verified'
return 'unverified'