feat: filter site bodies before media upload

This commit is contained in:
Your Name
2026-08-10 22:52:23 +05:00
parent e5ef3fb9e8
commit aad9ee46eb
16 changed files with 127 additions and 61 deletions
+12 -18
View File
@@ -61,7 +61,7 @@
│ ├── templates/ # HTML-шаблоны
│ └── workers/
│ ├── parser.py # VK-парсер
│ ├── vk_storage_uploader.py# Telegram media storage uploader
│ ├── media_uploader.py# Telegram media storage uploader
│ ├── ai_qualifier.py # AI-квалификатор
│ └── ai_writer.py # AI-райтер
├── original_project/ # старый проект как справочник
@@ -338,7 +338,7 @@ AI-райтер:
Сейчас основной тип:
- `vk.storage.copy`
- `media.storage.copy`
Название историческое: сначала планировался VK storage, потом медиа-сторедж вернулся в Telegram. Тип задачи пока не переименован.
@@ -357,7 +357,7 @@ AI-райтер:
Имена воркеров:
- `vk-parser`
- `vk-storage-uploader`
- `media-uploader`
- `ai-qualifier`
- `ai-writer`
- `tg-poster`
@@ -556,7 +556,7 @@ Retention: записи старше 30 дней удаляются при ст
6. При включенном `parser_dedupe_content_hash` также убирает дубли по `content_hash`.
7. Применяет политику мусорных постов.
8. Сохраняет raw post и media.
9. Создаёт job `vk.storage.copy`.
9. Создаёт job `media.storage.copy`.
### 7.2. Политика мусорных постов
@@ -615,13 +615,13 @@ Retention: записи старше 30 дней удаляются при ст
## 8. Media storage uploader
Файл: `src/vk_parser_app/workers/vk_storage_uploader.py`.
Файл: `src/vk_parser_app/workers/media_uploader.py`.
Название файла историческое: сейчас фактическое хранилище медиа - Telegram, а не VK.
### 8.1. Что делает
1. Забирает job типа `vk.storage.copy`.
1. Забирает job типа `media.storage.copy`.
2. Загружает `raw_post` и media.
3. Скачивает изображения/видео.
4. Отправляет в Telegram storage channel.
@@ -1247,7 +1247,7 @@ uvicorn vk_parser_app.admin:app --host 0.0.0.0 --port 8080
```powershell
$env:PYTHONPATH="src"
python -m vk_parser_app.workers.parser
python -m vk_parser_app.workers.vk_storage_uploader
python -m vk_parser_app.workers.media_uploader
python -m vk_parser_app.workers.ai_qualifier
python -m vk_parser_app.workers.ai_writer
python -m vk_parser_app.workers.tg_poster
@@ -1376,16 +1376,10 @@ systemctl start ai-writer.service
Они не влияют на текущую очередь, но могут путать в админке. Их стоит аккуратно пометить как failed/cancelled или скрывать служебные тесты.
### 20.2. Название `vk_storage_uploader.py`
### 20.2. Media uploader
Файл исторически называется VK storage uploader, но фактически загружает в Telegram. Можно позже переименовать:
```text
vk_storage_uploader.py -> tg_storage_uploader.py
JOB_TYPE_VK_STORAGE_COPY -> tg.storage.copy
```
Делать только миграцией и аккуратно, чтобы не потерять jobs.
Uploader переименован в `media_uploader.py`, worker — в `media-uploader`, а jobs — в
`media.storage.copy`. Миграция сохраняет уже созданные задания.
### 20.3. Настройки Telegram uploader
@@ -1449,7 +1443,7 @@ JOB_TYPE_VK_STORAGE_COPY -> tg.storage.copy
sources
-> parser
-> raw_posts + raw_post_media
-> jobs(vk.storage.copy)
-> jobs(media.storage.copy)
-> Telegram storage uploader
-> status=storage_ready
-> AI qualifier
@@ -1485,7 +1479,7 @@ admin_sessions
```text
src/vk_parser_app/admin.py
src/vk_parser_app/workers/parser.py
src/vk_parser_app/workers/vk_storage_uploader.py
src/vk_parser_app/workers/media_uploader.py
src/vk_parser_app/workers/ai_qualifier.py
src/vk_parser_app/workers/ai_writer.py
src/vk_parser_app/workers/tg_poster.py