Files
AnonBot/config/constants.py

134 lines
5.1 KiB
Python
Raw Permalink 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.
"""
Константы для 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"]