[ВОЛК] Выделение 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 time
|
||||||
import traceback
|
import traceback
|
||||||
import socket
|
import socket
|
||||||
|
import re
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
from urllib.error import URLError, HTTPError
|
from urllib.error import URLError, HTTPError
|
||||||
@@ -279,10 +280,28 @@ def load_categories():
|
|||||||
if not description:
|
if not description:
|
||||||
description = None
|
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(
|
cursor.execute(
|
||||||
"UPDATE categories SET description = %s WHERE ID = %s",
|
"UPDATE categories SET description = %s, image_url = %s WHERE ID = %s",
|
||||||
(description, category_id)
|
(description, image_url, category_id)
|
||||||
)
|
)
|
||||||
connection.commit()
|
connection.commit()
|
||||||
desc_updated_count += 1
|
desc_updated_count += 1
|
||||||
|
|||||||
Reference in New Issue
Block a user