79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
"""
|
||
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'
|