[ZILANT] коррекция логики проверки добавленных ссылок
This commit is contained in:
+3
-19
@@ -72,27 +72,16 @@ def extract_text_link_urls(entities) -> list:
|
||||
return urls
|
||||
|
||||
|
||||
def published_message_has_expected_links(
|
||||
entities,
|
||||
expected_urls,
|
||||
*,
|
||||
result_text: str | None = None,
|
||||
min_length: int | None = None,
|
||||
) -> bool:
|
||||
def published_message_has_expected_links(entities, expected_urls) -> bool:
|
||||
"""
|
||||
Проверка, что в сообщении есть именно footer-ссылки публикации.
|
||||
|
||||
Нельзя проверять «любой text_link» или слова «Инфо»/«Подписка» в тексте:
|
||||
в теле события могут быть свои <a href> из replace_vk_links.
|
||||
Сравнение только по URL в text_link entities (plain text короче HTML).
|
||||
"""
|
||||
expected_urls = [u for u in (expected_urls or []) if u]
|
||||
if not expected_urls:
|
||||
return True
|
||||
|
||||
if min_length is not None and result_text is not None:
|
||||
if len(result_text) < min_length:
|
||||
return False
|
||||
|
||||
found = set(extract_text_link_urls(entities))
|
||||
return all(url in found for url in expected_urls)
|
||||
|
||||
@@ -100,12 +89,7 @@ def published_message_has_expected_links(
|
||||
def published_message_has_links(text: str, entities=None, expected_urls=None) -> bool:
|
||||
"""Проверка footer-ссылок; expected_urls обязателен при вызове из publisher."""
|
||||
if expected_urls is not None:
|
||||
return published_message_has_expected_links(
|
||||
entities,
|
||||
expected_urls,
|
||||
result_text=text,
|
||||
min_length=None,
|
||||
)
|
||||
return published_message_has_expected_links(entities, expected_urls)
|
||||
return bool(extract_text_link_urls(entities))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user