autoreg-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok60915d52e8425
2026-10-20 02:16:32 +03:00
commit f58eafeb48
565 changed files with 60064 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
# ProxyScrape Premium Free Trial — $0 авторег + рабочие прокси
Live-пруф 2026-10-07: акк зареган, триал активен (100 datacenter-прокси, 10 GB, 7 дней, status `valid`), 8/8 прокси отдают трафик через user:pass auth. Весь флоу $0 (фри-капча sidecar :8877), скрипт E2E: `scratch/ps_e2e.py`.
## Ключевой вывод: НЕ воевать с формой — API напрямую
Sign-up на `dashboard.proxyscrape.com/v2/sign-up` — Next.js SPA (MUI). Все браузерные пути инжекта out-of-band Turnstile-токена провалились:
- set value на hidden input + dispatch input/change → кнопка не разблокировалась/сабмит не отправлял fetch
- React fiber `onSuccessCallback(token)` → найден (depth ~4-6), вызван, но network-запроса тоже не появилось
Рабочий путь: **извлечь API-эндпоинты из Next.js chunk'ов и POST'ить напрямую** с токеном как form-поле.
### Как найти эндпоинты
1. В page source — список `/_next/static/chunks/pages/*.js`
2. Скачать `_app-*.js` и sign-up chunk, grep'ать на `v4/account`, `auth/register`, `turnstile`
3. Найденные роуты (база `https://dashboard.proxyscrape.com`):
- `POST /v2/v4/account/auth/register` — поля `email`, `password`, `confirm_password`, `terms_agreement=true`, `cf_turnstile_token`
- `POST /v2/v4/account/auth/login` — тоже требует Turnstile-токен
- `POST /v2/v4/account/auth/me` — Bearer access_token
- `POST /v2/v4/account/premium/claim-trial` — активирует триал БЕЗ верификации почты
- `POST /v2/v4/account/reset-verification-code` — шлёт hex-код на email
- `POST /v2/v4/account/verify-email` — поле `verificationCode` (HEX, напр. `a0ae05f6dd` — НЕ `\d{6}`!)
- `GET /v2/v4/account/{accountId}/datacenter_shared/proxy-list?format=json&type=displayproxies&protocol=http&start=0&length=100&draw=1`
- `POST /v2/v4/account/{accountId}/datacenter_shared/credentials` — username/password для proxy-auth
- `GET /v2/v4/account/{accountId}/datacenter_shared/whitelist?ip[]=label:IP&type=add` — добавить свой IP
**Content-Type: `application/x-www-form-urlencoded`** — JSON-тело → 400 на register.
### Флоу
1. Email: Gmail +alias (`user+XXXX@gmail.com`), пароль random. Сохранить в state-JSON.
2. Turnstile sitekey sign-up страницы: `0x4AAAAAAAFWUVCKyusT9T8r` (снимается из JS-бандла). Решить фри-сайдкаром: `POST http://127.0.0.1:8877/solve {type:"turnstile", sitekey, url, real_page:false, timeout_s:120}` → ~11-36с, токен ~752 chars. Здесь real_page НЕ обязателен (обычная проверка токена сервером, без WorkOS-аттестации).
3. `POST register` (form-encoded) → 200 + `access_token` (Bearer для всего остального).
4. `POST premium/claim-trial` → триал активен сразу, верификация почты НЕ блокирует триал.
5. `POST reset-verification-code` → письмо; забрать код из IMAP. **Код HEX** (10 символов [0-9a-f]) — regex `\b[0-9a-f]{8,12}\b` в теле после «code», не `\d{6}`.
6. `POST verify-email {verificationCode}` → `{"success":true}`.
7. `POST datacenter_shared/credentials` → proxy username/password.
8. `GET whitelist?ip[]=unset:<МОЙ_IP>&type=add` — без whitelist auth-прокси отдают 407. **Sync ~7-10 минут** — тест проксей сразу после add даст 407/timeout, это НЕ фейл.
9. `GET proxy-list` → 100 строк. Формат для использования: `http://USER:***@IP:3129` (единые credentials на все прокси, не per-proxy).
10. Проверка: `urllib ProxyHandler({'http':p,'https':p})` → `api.ipify.org` → exit IP = IP прокси.
Гео пула (пример): US 52, DE 12, FR 9, BR 8, GB 7, CA 5, IT 3, ES 2, TH 2.
## Free API без регистрации (для постов/быстрых задач)
`https://api.proxyscrape.com/v4/free-proxy-list/get?request=display_proxies&country=all&protocol=all&timeout=10000` → HTTP 200, ~2000 строк `ip:port`, без auth. Качество низкое, но $0 и мгновенно.
## Pitfalls
- `curl https://proxyscrape.com/...` → пустой ответ/exit 23 (SPA + geo/CDN): контент страницы читать через browser-рендер, а API — через chunks.
- Login-эндпоинт тоже требует свежий Turnstile-токен — для повторного входа решать капчу зановая, или хранить access_token из регистрации (он долгоживущий; localStorage-ключ панели — `accessToken`).
- При смене домашнего IP — re-add whitelist (единственный ручной шаг при массовке).
- Скрипт-шаблон: `C:/Users/User/AppData/Local/hermes/cache/scratch/ps_reg2.py` (solve+register), `ps_e2e.py` (полный цикл), `ps_verify.py` (IMAP-код + verify), `ps_farm.py N` (батч N акков → `ps_accounts.jsonl`: solve+register+claim+verify+whitelist+creds+proxy-list на акк).
- Перед батчем — `curl http://127.0.0.1:8877/health`: сайдкар после рестарта биндится на дефолтный порт 3000 без `PORT=8877`, и весь батч фейлится пачкой `ConnectionRefusedError 10061`. Лечится `PORT=8877 python server.py` + health-check до запуска фарма.