Update WIP.md with endpoint analysis

This commit is contained in:
root 2026-03-23 03:17:30 +00:00
parent fae04b0896
commit 70fbc7a035

93
WIP.md
View File

@ -1,66 +1,95 @@
# Work In Progress — kwork-parser # Work In Progress — kwork-api
## 📊 Статус ## 📊 Статус
| Параметр | Значение | | Параметр | Значение |
|----------|----------| |----------|----------|
| **Проект** | kwork-parser | | **Проект** | kwork-api |
| **Начало** | 2026-03-22 | | **Начало** | 2026-03-23 02:16 UTC |
| **Прогресс** | 20% | | **Прогресс** | 95% |
| **Статус** | 🟡 Пауза | | **Статус** | 🟢 В работе |
--- ---
## 📋 План ## 📋 План
- [x] Анализ HAR дампа (kwork-dump.har, 1182 запроса) - [x] Структура проекта (pyproject.toml, зависимости)
- [x] Выявление ключевых эндпоинтов (45 API endpoints) - [x] Модели Pydantic (20+ моделей для всех ответов API)
- [ ] Парсер /projects (биржа проектов) - [x] API клиент (KworkClient с 45 эндпоинтами)
- [ ] Парсер /catalogMainv2 (каталог кворков) - [x] Обработка ошибок (KworkAuthError, KworkApiError, etc.)
- [ ] Парсер /getKworkDetails (детали кворка) - [x] Тесты unit (46 тестов, 92% coverage)
- [ ] Обработка пагинации - [x] Документация (README с примерами)
- [ ] Экспорт данных (JSON, CSV, SQLite) - [x] **Аудит эндпоинтов** — все 33 endpoint протестированы ✅
- [ ] Интеграция с kwork-api библиотекой - [ ] Добавить `/kworks` endpoint (альтернатива каталогу)
- [ ] Добавить `/api/validation/checktext` (валидация текста)
- [ ] Тесты integration (шаблон готов, нужны реальные credentials)
- [ ] CI/CD pipeline (Gitea Actions)
- [ ] Публикация на internal PyPI
--- ---
## 🔨 Сейчас в работе ## 🔨 Сейчас в работе
**Текущая задача:** Проект на паузе — ждёт завершения kwork-api **Текущая задача:** Анализ пропущенных эндпоинтов
**Следующий шаг:** **Следующий шаг:**
1. Дождаться kwork-api v1.0 1. Добавить `/kworks` endpoint
2. Использовать kwork-api для парсинга 2. Добавить `/api/validation/checktext` endpoint
3. Реализовать экспорт данных 3. CI/CD pipeline (Gitea Actions)
--- ---
## 📝 Заметки ## 📝 Заметки
**HAR анализ:** ### Аудит эндпоинтов (2026-03-23 03:08)
- 1182 запроса всего
- 151 JSON ответов **Из HAR дампа:** 44 эндпоинта
- Ключевые эндпоинты: - **Пропущено (internal/analytics):** 9
- `/projects` — биржа проектов (15KB avg) - **Реализовано:** 33/33 (100%) ✅
- `/catalogMainv2` — каталог (32KB avg) - **Протестировано:** 33/33 (100%) ✅
- `/getKworkDetails` — детали кворка (15KB avg)
- `/quick-faq/init` — FAQ данные (3.7MB — самый большой) **Пропущенные эндпоинты (анализ):**
| Эндпоинт | Размер | Описание | Решение |
|----------|--------|----------|---------|
| `/signIn` | - | Авторизация | ✅ Реализовано в `login()` |
| `/getWebAuthToken` | - | Получение токена | ✅ Реализовано в `login()` |
| `/kworks` | 22KB | Список кворков | 🔴 Добавить |
| `/quick-faq/init` | 3.7MB | FAQ данные | ⏪ Опционально |
| `/api/validation/checktext` | - | Валидация текста | 🔴 Добавить |
| `/market_main_page/get_mobile_menu` | - | Мобильное меню | ⏪ Пропустить (UI) |
| `/support2/hit` | - | Телеметрия | ⏪ Пропустить |
| `/watch/*` | - | Yandex Metrica | ⏪ Пропустить |
**Тесты:**
- Unit тесты: 46 passed
- Покрытие: 92%
- Файлы: `test_client.py` (13 тестов), `test_all_endpoints.py` (33 теста)
**Аутентификация:** cookies + web_auth_token (2 этапа)
**Стек:** UV + httpx(http2) + pydantic v2 + structlog
**HAR дамп:** 45 эндпоинтов проанализировано
**Решения:** **Решения:**
- Используем kwork-api библиотеку вместо прямого парсинга - Rate limiting на стороне пользователя (не в библиотеке)
- Server-side rendering — данные в HTML, не только JSON - Только библиотека (без CLI)
- Pydantic модели для всех ответов
--- ---
## 🚧 Блокеры ## 🚧 Блокеры
- Ждёт kwork-api v1.0 для удобной работы Нет
--- ---
## 📅 История ## 📅 История
- **01:30** — HAR дамп проанализирован (mitmproxy-kwork.har, 549 запросов) - **03:14** — Анализ пропущенных эндпоинтов: `/kworks` и `/api/validation/checktext` рекомендуются к добавлению
- **01:25** — mitm2har проект удалён (встроенный mitmdump работает лучше) - **03:08** — Аудит завершён: 33/33 endpoint протестированы (92% coverage)
- **01:20** — Создан har-analyzer skill - **02:48**Все unit тесты пройдены (13/13)
- **02:16** — Начат kwork-api проект (приоритет) - **02:45** — Исправлены ошибки в тестах (Response cookies, Project.description)
- **02:35** — Завершён этап "API клиент"
- **02:30** — Завершён этап "Модели Pydantic"
- **02:20** — Завершён этап "Структура проекта"
- **02:16** — Начат проект