"""Utility helper functions.""" from typing import Tuple from config.settings import settings def parse_range(value: str, default_min: int = 5) -> tuple: """Парсит строку диапазона 'мин-макс' или одиночное число.""" # Очищаем от кавычек и пробелов value = str(value).replace("'", "").replace('"', "").replace("`", "").strip() if '-' in value: parts = value.split('-') if len(parts) != 2: raise ValueError(f"Неверный формат: {value}. Пример: 10-30") try: min_val = int(parts[0].strip()) max_val = int(parts[1].strip()) except ValueError: raise ValueError(f"Не числа: {value}. Пример: 10-30") if min_val < default_min: raise ValueError(f"Минимум: {default_min}") if min_val >= max_val: raise ValueError("Мин должно быть меньше макс") return min_val, max_val else: try: val = int(value) except ValueError: raise ValueError(f"Не число: {value}") if val < default_min: raise ValueError(f"Минимум: {default_min}") return val, val def format_range(min_val: int, max_val: int) -> str: """Format range for display.""" return f"{min_val}-{max_val}" if min_val != max_val else str(min_val) def extract_domain(url: str) -> str: """Extract domain from URL.""" return url.replace("https://", "").replace("http://", "").split("/")[0]