Пофиксил умена зеркал при добавлении
This commit is contained in:
@@ -203,10 +203,17 @@ def find_mirror_satellites(mirror_names: list) -> list:
|
||||
|
||||
Алгоритм:
|
||||
1. Для каждого имени зеркала:
|
||||
- Обрезать пробелы и привести к нижнему регистру
|
||||
- Обрезать пробелы
|
||||
- Извлечь первую часть имени (до скобки), если есть двойное имя
|
||||
- Привести к нижнему регистру
|
||||
- Найти все спутники, в имени или альтернативном имени которых содержится это имя
|
||||
2. Вернуть список найденных спутников
|
||||
|
||||
Примеры обработки:
|
||||
- "DSN-3 (SUPERBIRD-C2)" -> "dsn-3"
|
||||
- "Turksat 3A" -> "turksat 3a"
|
||||
- " Amos 4 " -> "amos 4"
|
||||
|
||||
Args:
|
||||
mirror_names: список имен зеркал
|
||||
|
||||
@@ -221,15 +228,26 @@ def find_mirror_satellites(mirror_names: list) -> list:
|
||||
if not mirror_name or mirror_name == "-":
|
||||
continue
|
||||
|
||||
# Обрезаем пробелы и приводим к нижнему регистру
|
||||
mirror_name_clean = mirror_name.strip().lower()
|
||||
# Обрезаем пробелы
|
||||
mirror_name_clean = mirror_name.strip()
|
||||
|
||||
if not mirror_name_clean:
|
||||
if not mirror_name_clean or mirror_name_clean == "-":
|
||||
continue
|
||||
|
||||
# Извлекаем первую часть имени (до скобки), если есть двойное имя
|
||||
# Например: "DSN-3 (SUPERBIRD-C2)" -> "DSN-3"
|
||||
if "(" in mirror_name_clean:
|
||||
mirror_name_clean = mirror_name_clean.split("(")[0].strip()
|
||||
|
||||
# Приводим к нижнему регистру для поиска
|
||||
mirror_name_lower = mirror_name_clean.lower()
|
||||
|
||||
if not mirror_name_lower:
|
||||
continue
|
||||
|
||||
# Ищем спутники, в имени или альтернативном имени которых содержится имя зеркала
|
||||
satellites = Satellite.objects.filter(
|
||||
Q(name__icontains=mirror_name_clean) | Q(alternative_name__icontains=mirror_name_clean)
|
||||
Q(name__icontains=mirror_name_lower) | Q(alternative_name__icontains=mirror_name_lower)
|
||||
)
|
||||
|
||||
found_satellites.extend(satellites)
|
||||
|
||||
Reference in New Issue
Block a user