[ZILANT] коррекция логики проверки добавленных ссылок
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/manual/woodpecker Pipeline was successful

This commit is contained in:
2026-09-02 22:49:03 +03:00
parent f74953e082
commit 87ccd23e96
7 changed files with 25 additions and 40 deletions
+3 -19
View File
@@ -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))