From 34fd7c25e80a3fc4b9122f7cc4dba52c7fbcf512 Mon Sep 17 00:00:00 2001 From: gitadmin Date: Sat, 15 Nov 2025 21:49:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20URL-=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B2=20=D0=92=D0=9A-=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=B8=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formatter.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/formatter.py b/formatter.py index 7af08b7..0dc1d4d 100644 --- a/formatter.py +++ b/formatter.py @@ -25,15 +25,27 @@ def replace_vk_links(text): Заменяет ссылки на сообщества ВК в форматах: [club123|Название сообщества] -> Название сообщества [id456|Имя пользователя] -> Имя пользователя + [url|текст] -> текст (для Telegram) """ if not text: return text - # Регулярное выражение для поиска ссылок формата [типID|Текст] - pattern = r'\[(?:club|id)\d+\|([^\]]+)\]' + # Сначала обрабатываем ссылки формата [url|текст] и преобразуем их в HTML-ссылки + def replace_url_link(match): + url = match.group(1) + link_text = match.group(2) + return f'{link_text}' + + # Регулярное выражение для поиска ссылок формата [url|текст] + # Исключаем случаи, когда url начинается с club или id и цифр, за которыми сразу следует | (это обрабатывается отдельно) + url_pattern = r'\[(?!club\d+\||id\d+\|)([^\|]+)\|([^\]]+)\]' + text = re.sub(url_pattern, replace_url_link, text) + + # Регулярное выражение для поиска ссылок формата [типID|Текст] (ВК-специфичные) + vk_pattern = r'\[(?:club|id)\d+\|([^\]]+)\]' # Заменяем все вхождения на текст внутри ссылки - return re.sub(pattern, r'\1', text) + return re.sub(vk_pattern, r'\1', text) def remove_html_tags(text): """Удаляет HTML-теги с учетом специальной обработки

и """