# Проект: Интернет-заказы

## Цель
Голосовое управление заказом продуктов через интернет-магазины. Слава говорит "закажи продукты на завтрак" → я подбираю товары из базы знаний → скрипт автоматически заполняет корзину → Слава только оплачивает.

## Магазин: 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 шт (бренд/вкус уточнить)
- Молоко (жирность/объём уточнить)
- Блинчики со сладкой начинкой (производитель уточнить)
- Яйца (категория/количество уточнить)

Сценарии для разработки: "завтрак", "базовый набор", + явные добавления ("и закажи кетчуп")
