Files
Click/utils/helpers.py
T
2026-05-14 16:15:58 +07:00

45 lines
1.6 KiB
Python

"""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]