[ВОЛК] Выделение URL изображения из описания категории
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-12-25 21:10:06 +03:00
parent 2284fd3263
commit 399b02d29f
+22 -3
View File
@@ -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