82 lines
4.8 KiB
Markdown
82 lines
4.8 KiB
Markdown
# Проект: Интернет-заказы
|
||
|
||
## Цель
|
||
Голосовое управление заказом продуктов через интернет-магазины. Слава говорит "закажи продукты на завтрак" → я подбираю товары из базы знаний → скрипт автоматически заполняет корзину → Слава только оплачивает.
|
||
|
||
## Магазин: vprok.ru (Перекрёсток)
|
||
Основной магазин для старта. Слава заказывает там каждые 3-4 дня.
|
||
|
||
## Инфраструктура
|
||
|
||
### Сервер-реле
|
||
- **IP:** 185.130.212.192 (сервер Славы с "чистым" IP)
|
||
- **SSH:** root / AR5f7_T-bA
|
||
- **Сервис:** `vprok-relay` (systemd, Flask, порт 5000)
|
||
- **Файл:** `/opt/vprok/relay_server.py`
|
||
- **API-ключ:** `vprok2024secret` (header: `X-Api-Key`)
|
||
|
||
### Эндпоинты relay-сервера
|
||
- `POST /task` — отправить задание (items: [{query, qty}])
|
||
- `GET /task` — забрать задание (клиент опрашивает раз в 30 сек)
|
||
- `POST /task/done` — отметить выполненным
|
||
- `GET /status` — статус последнего задания
|
||
|
||
### Xray на сервере (VLESS + SOCKS5)
|
||
- VLESS Reality на порту 443 (для VPN-подключения)
|
||
- UUID: `d3a2fae8-d703-4b2f-8d94-afb016d57640`
|
||
- PublicKey: `3jY3vI6MUTEn3X20u7xDjpxrF2wO6zUxiXgP-Aie7yQ`
|
||
- ShortId: `a1b2c3d4`
|
||
- SNI: www.microsoft.com
|
||
- SOCKS5 на порту 1080 (user: vprokproxy / pass: s3cur3pass)
|
||
|
||
### VLESS ссылка
|
||
```
|
||
vless://d3a2fae8-d703-4b2f-8d94-afb016d57640@185.130.212.192:443?encryption=none&security=reality&sni=www.microsoft.com&fp=chrome&pbk=3jY3vI6MUTEn3X20u7xDjpxrF2wO6zUxiXgP-Aie7yQ&sid=a1b2c3d4&flow=xtls-rprx-vision&type=tcp#vprok-proxy
|
||
```
|
||
|
||
## Файлы проекта (workspace)
|
||
- `tasks/vprok/windows_client.py` — Playwright-клиент для Windows
|
||
- `tasks/vprok/send_task.py` — отправка задания на сервер (для Стрим)
|
||
- `tasks/vprok/relay_server.py` — копия кода сервера
|
||
- `tasks/vprok/api_research.md` — исследование API vprok.ru
|
||
- `tasks/vprok/README_WINDOWS.md` — инструкция для пользователя
|
||
|
||
## Технические решения и выводы
|
||
|
||
### DDoS Guard (главная проблема)
|
||
- vprok.ru защищён DDoS Guard — привязывает сессию к IP + требует JS-challenge
|
||
- Datacenter IP (VPS) — блокируется, даже с Playwright/stealth/camoufox
|
||
- **Решение:** скрипт запускается локально на машине пользователя (residential IP)
|
||
|
||
### Архитектура клиента
|
||
- Windows: Python + Playwright (НЕ headless — виден процесс)
|
||
- Браузер остаётся открытым → пользователь оформляет и платит сам
|
||
- Опрос сервера раз в 30 сек
|
||
|
||
### Что НЕ работает
|
||
- Прямые HTTP-запросы с VPS → DDoS Guard блокирует
|
||
- SOCKS5 прокси через 185.130.212.192 → тот же IP-блок
|
||
- Playwright headless с любого не-residential IP → JS-challenge не проходит
|
||
- Playwright с stealth/camoufox → тоже не проходит
|
||
|
||
## Текущий статус (31.03.2026)
|
||
✅ Relay-сервер запущен на 185.130.212.192:5000
|
||
✅ Windows-клиент написан и готов к тестированию
|
||
✅ send_task.py готов (Стрим может отправлять задания)
|
||
⏳ Ожидает первого теста на Windows машине Славы
|
||
|
||
## Следующие шаги
|
||
1. Слава запускает `windows_client.py` на домашнем ПК
|
||
2. Тест: отправить задание → проверить что Chrome открывается и добавляет товары
|
||
3. Собрать базу знаний предпочтений (бренды, объёмы, сценарии "завтрак"/"ужин" и т.д.)
|
||
4. Добавить второй магазин (Ubuntu-машина для прома)
|
||
|
||
## База знаний предпочтений (начало, уточнить!)
|
||
Слава упомянул типичную корзину:
|
||
- Йогурты — 4 шт (бренд/вкус уточнить)
|
||
- Молоко (жирность/объём уточнить)
|
||
- Блинчики со сладкой начинкой (производитель уточнить)
|
||
- Яйца (категория/количество уточнить)
|
||
|
||
Сценарии для разработки: "завтрак", "базовый набор", + явные добавления ("и закажи кетчуп")
|