From 399b02d29f8a40c091cb29df1e794ebf25877a2c Mon Sep 17 00:00:00 2001 From: gitadmin Date: Thu, 25 Dec 2025 21:10:06 +0300 Subject: [PATCH] =?UTF-8?q?[=D0=92=D0=9E=D0=9B=D0=9A]=20=D0=92=D1=8B=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20URL=20=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- volk_load.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/volk_load.py b/volk_load.py index fe61e4c..36f36cd 100644 --- a/volk_load.py +++ b/volk_load.py @@ -3,6 +3,7 @@ import json import time import traceback import socket +import re from datetime import datetime from urllib.request import urlopen from urllib.error import URLError, HTTPError @@ -279,10 +280,28 @@ def load_categories(): if not description: description = None - # Обновляем описание в базе данных + # Обработка маркдаун-ссылок на изображения в конце описания + image_url = None + if description: + # Паттерн для поиска маркдаун-ссылки вида ![](url "title") или ![](url) + # Ищем в конце текста (с учетом пробелов и переносов строк) + # Паттерн: ![](url) или ![](url "title") + # URL может содержать различные символы, включая скобки в URL-кодированном виде + markdown_image_pattern = r'!\[\]\(([^)]+?)(?:\s+"[^"]*")?\)\s*$' + match = re.search(markdown_image_pattern, description, re.MULTILINE) + if match: + image_url = match.group(1).strip() + # Удаляем маркдаун-ссылку из описания (включая пробелы и переносы строк перед ней) + description = re.sub(r'\s*!\[\]\([^)]+?(?:\s+"[^"]*")?\)\s*$', '', description, flags=re.MULTILINE).rstrip() + # Если после удаления описание стало пустым, обнуляем его + if not description.strip(): + description = None + log_message(f"Извлечен URL изображения для категории {category_id}: {image_url}") + + # Обновляем описание и image_url в базе данных cursor.execute( - "UPDATE categories SET description = %s WHERE ID = %s", - (description, category_id) + "UPDATE categories SET description = %s, image_url = %s WHERE ID = %s", + (description, image_url, category_id) ) connection.commit() desc_updated_count += 1