134 lines
5.1 KiB
Python
134 lines
5.1 KiB
Python
"""
|
||
Константы для AnonBot
|
||
"""
|
||
from typing import Final
|
||
|
||
# =============================================================================
|
||
# ПАГИНАЦИЯ
|
||
# =============================================================================
|
||
|
||
# Количество элементов на странице по умолчанию
|
||
DEFAULT_PAGE_SIZE: Final[int] = 9
|
||
|
||
# Максимальное количество элементов на странице
|
||
MAX_PAGE_SIZE: Final[int] = 50
|
||
|
||
# Минимальный номер страницы
|
||
MIN_PAGE_NUMBER: Final[int] = 0
|
||
|
||
# =============================================================================
|
||
# ТЕКСТОВЫЕ ОГРАНИЧЕНИЯ
|
||
# =============================================================================
|
||
|
||
# Минимальная длина вопроса
|
||
MIN_QUESTION_LENGTH: Final[int] = 5
|
||
|
||
# Минимальная длина ответа
|
||
MIN_ANSWER_LENGTH: Final[int] = 5
|
||
|
||
# Длина превью вопроса по умолчанию
|
||
DEFAULT_QUESTION_PREVIEW_LENGTH: Final[int] = 100
|
||
|
||
# Длина обрезки текста по умолчанию
|
||
DEFAULT_TEXT_TRUNCATE_LENGTH: Final[int] = 100
|
||
|
||
# =============================================================================
|
||
# СТАТИСТИКА И МЕТРИКИ
|
||
# =============================================================================
|
||
|
||
# Минимальное количество запросов для адаптации rate limiting
|
||
MIN_REQUESTS_FOR_ADAPTATION: Final[int] = 100
|
||
|
||
# Высокий уровень ошибок для rate limiting (10%)
|
||
HIGH_ERROR_RATE_THRESHOLD: Final[float] = 0.1
|
||
|
||
# Низкий уровень ошибок для rate limiting (1%)
|
||
LOW_ERROR_RATE_THRESHOLD: Final[float] = 0.01
|
||
|
||
# =============================================================================
|
||
# HTTP СЕРВЕР
|
||
# =============================================================================
|
||
|
||
# Порт HTTP сервера по умолчанию
|
||
DEFAULT_HTTP_PORT: Final[int] = 8081
|
||
|
||
# Хост HTTP сервера по умолчанию
|
||
DEFAULT_HTTP_HOST: Final[str] = "0.0.0.0"
|
||
|
||
# Версия приложения
|
||
APP_VERSION: Final[str] = "1.0.0"
|
||
|
||
# =============================================================================
|
||
# БАЗА ДАННЫХ
|
||
# =============================================================================
|
||
|
||
# Размер пула соединений по умолчанию
|
||
DEFAULT_CONNECTION_POOL_SIZE: Final[int] = 5
|
||
|
||
# Timeout для соединения с БД (секунды)
|
||
DATABASE_TIMEOUT: Final[float] = 30.0
|
||
|
||
# Размер кэша SQLite
|
||
SQLITE_CACHE_SIZE: Final[int] = 10000
|
||
|
||
# =============================================================================
|
||
# БЕЗОПАСНОСТЬ
|
||
# =============================================================================
|
||
|
||
# Длина токена для анонимных пользователей
|
||
ANONYMOUS_TOKEN_LENGTH: Final[int] = 8
|
||
|
||
# =============================================================================
|
||
# ФОРМАТИРОВАНИЕ
|
||
# =============================================================================
|
||
|
||
# Количество символов в разделителе
|
||
SEPARATOR_LENGTH: Final[int] = 30
|
||
|
||
# Количество знаков после запятой для процентов
|
||
PERCENTAGE_DECIMAL_PLACES: Final[int] = 1
|
||
|
||
# Количество знаков после запятой для времени
|
||
TIME_DECIMAL_PLACES: Final[int] = 2
|
||
|
||
# =============================================================================
|
||
# СТАТУСЫ HTTP
|
||
# =============================================================================
|
||
|
||
# HTTP статус коды
|
||
HTTP_STATUS_OK: Final[int] = 200
|
||
HTTP_STATUS_SERVICE_UNAVAILABLE: Final[int] = 503
|
||
HTTP_STATUS_INTERNAL_SERVER_ERROR: Final[int] = 500
|
||
|
||
# =============================================================================
|
||
# ВРЕМЕННЫЕ ИНТЕРВАЛЫ
|
||
# =============================================================================
|
||
|
||
# Количество дней для статистики "за неделю"
|
||
WEEK_DAYS: Final[int] = 7
|
||
|
||
# Количество дней для статистики "за сегодня"
|
||
TODAY_DAYS: Final[int] = 1
|
||
|
||
# =============================================================================
|
||
# СИМВОЛЫ И ЭМОДЗИ
|
||
# =============================================================================
|
||
|
||
# Эмодзи для статусов пользователей
|
||
SUPERUSER_EMOJI: Final[str] = "🔍"
|
||
REGULAR_USER_EMOJI: Final[str] = "👤"
|
||
|
||
# Эмодзи для навигации
|
||
PREVIOUS_PAGE_EMOJI: Final[str] = "⬅️"
|
||
NEXT_PAGE_EMOJI: Final[str] = "➡️"
|
||
|
||
# =============================================================================
|
||
# МАССИВЫ И СПИСКИ
|
||
# =============================================================================
|
||
|
||
# Пустые значения для проверки
|
||
EMPTY_VALUES: Final[tuple] = ('0', '')
|
||
|
||
# Разрешенные обновления для polling
|
||
ALLOWED_UPDATES: Final[list] = ["message", "callback_query"]
|