""" Константы для 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"]