fix: корректные source_url для VK постов (screen_name формат)
- VkSource: добавлено поле screen_name, заполняется из VK API при добавлении источника
- vk_parser: source_url теперь в формате vk.com/{screen_name}?w=wall{owner}_{post}
вместо устаревшего vk.com/wall{owner}_{post}
- _vk_post_exists: проверка через LIKE чтобы находить оба формата URL
- admin_vk: автоматически получает screen_name при создании/обновлении источника
- admin_system: исправлен regex в repair-media-urls — только /news-media/ URL
- Alembic миграция: b2c3d4e5f6a7 добавляет колонку screen_name в vk_sources
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -138,12 +138,13 @@ async def repair_media_urls(db: AsyncSession = Depends(get_db), _: str = Depends
|
||||
RETURNING id
|
||||
"""), {"new_base": new_base, "prefix": new_base + "%"})
|
||||
|
||||
# HTML-контент: src="http://host/news-media/path" → src="new_base/path"
|
||||
# HTML-контент: только MinIO URL вида src="http://host/news-media/path"
|
||||
# Точный паттерн: URL содержит /news-media/ — не трогаем другие ссылки
|
||||
r_content = await db.execute(text(r"""
|
||||
UPDATE articles
|
||||
SET content = regexp_replace(
|
||||
content,
|
||||
'https?://[^/]+(:[0-9]+)?/[^/]+/([^"'' ]+)',
|
||||
'https?://[^/''"]+(:[0-9]+)?/news-media/([^''">]+)',
|
||||
:new_base || '/\2',
|
||||
'g'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user