@@ -41,17 +41,26 @@ def create_url():
4141
4242 # Нормализация URL
4343 normalized_url = url_input .strip ()
44+ parsed_input_url = urlparse (normalized_url )
45+ base_input_domain = f"{ parsed_input_url .scheme } ://{ parsed_input_url .netloc } "
4446
4547 # Проверка на наличие URL в базе данных
4648 with get_db_connection () as conn :
4749 with conn .cursor () as cur :
48- cur .execute ('SELECT id FROM urls WHERE name = %s' , (normalized_url ,))
49- existing_url = cur .fetchone ()
50-
51- if existing_url :
52- url_id = existing_url [0 ]
53- flash ('Страница уже существует' , 'error' )
54- return redirect (url_for ('url_detail' , url_id = url_id ))
50+ cur .execute ('SELECT id, name FROM urls' )
51+ existing_urls = cur .fetchall ()
52+
53+ # Проверяем, если в базе данных есть URL
54+ if existing_urls :
55+ for existing_url in existing_urls :
56+ # Убедитесь, что у вас есть правильный доступ к элементам
57+ if len (existing_url ) > 1 : # Проверяем, что у нас есть как минимум 2 элемента
58+ parsed_existing_url = urlparse (existing_url [1 ])
59+ base_existing_domain = f"{ parsed_existing_url .scheme } ://{ parsed_existing_url .netloc } "
60+
61+ if base_input_domain == base_existing_domain :
62+ flash ('Страница уже существует' , 'error' )
63+ return redirect (url_for ('url_detail' , url_id = existing_url [0 ]))
5564
5665 # Сохранение нового URL в базу данных
5766 cur .execute ('INSERT INTO urls (name) VALUES (%s) RETURNING id' , (normalized_url ,))
0 commit comments