[ВОЛК] Выделение URL изображения из описания категории
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+22
-3
@@ -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 может содержать различные символы, включая скобки в 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
|
||||
|
||||
Reference in New Issue
Block a user