autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# Grok (x.ai) Registration Pipeline
|
||||
|
||||
## Working Setup (2026-08-14)
|
||||
|
||||
**Location**: `C:\Users\User\Desktop\авторег проект\ready_grok_reg\`
|
||||
|
||||
### Components
|
||||
|
||||
| Component | File | Purpose |
|
||||
|---|---|---|
|
||||
| Main script | `DrissionPage_example.py` (1401 lines) | Full registration flow |
|
||||
| Email IMAP | `email_register_t_online.py` | t-online.de OTP retrieval |
|
||||
| Config | `config.json` | Proxy, DuckMail, API settings |
|
||||
| Turnstile patch | `turnstilePatch/` | Chrome extension for CDP bypass |
|
||||
| Email pool | `working_mails.txt` | 17,893 t-online.de accounts |
|
||||
| Proxy pool | `bpproxy_live.json` | 25 live residential proxies |
|
||||
|
||||
### Flow
|
||||
|
||||
1. Start Chromium via DrissionPage with Turnstile patch extension
|
||||
2. Navigate to `https://accounts.x.ai/sign-up?redirect=grok-com`
|
||||
3. Wait for Cloudflare Turnstile to auto-pass (15-30s)
|
||||
4. Click "Sign up with email" button
|
||||
5. Get email from `working_mails.txt` → fill email field → submit
|
||||
6. Read OTP via IMAP (`secureimap.t-online.de:993`)
|
||||
7. Enter OTP → fill profile (name, password) → submit
|
||||
8. Collect SSO token → save to `sso/` directory
|
||||
|
||||
### Key Fixes Applied (2026-08-14)
|
||||
|
||||
1. **DrissionPage proxy auth**: DrissionPage doesn't support `user:pass@host` proxy URLs. Use `proxy_forwarder.py` on localhost:9128.
|
||||
2. **Geo-blocking**: bpproxy residential exits from random countries. Verify with `ip-api.com` before use. Canada (CA) works for x.ai.
|
||||
3. **Turnstile wait**: increased from 5s to 30s with active challenge detection loop.
|
||||
4. **Button text**: added more English fallbacks (`continue with email`, `sign up with email`, `use email`).
|
||||
|
||||
### Current Issues
|
||||
|
||||
- proc_a67640977778 running with Canada proxy + Turnstile wait fix
|
||||
- Awaiting results
|
||||
|
||||
### Dependencies
|
||||
|
||||
```
|
||||
DrissionPage==[REDACTED-IP]b14
|
||||
curl_cffi>=0.7.0
|
||||
```
|
||||
|
||||
### Original Source
|
||||
|
||||
Fork of [kevinr229/grok-maintainer](https://github.com/kevinr229/grok-maintainer), adapted for t-online.de IMAP.
|
||||
@@ -0,0 +1,44 @@
|
||||
# Nodriver + Google OAuth Grok Registration
|
||||
|
||||
Конкретный пайплайн регистрации Grok (x.ai) через Google OAuth, когда прямой email signup блокируется Cloudflare.
|
||||
|
||||
## Проблема
|
||||
|
||||
`accounts.x.ai` блокирует ВСЕ bpproxy residential прокси (403). Даже DrissionPage с Turnstile patch получает `PageDisconnectedError` — Cloudflare рвёт CDP-соединение.
|
||||
|
||||
## Решение
|
||||
|
||||
Google OAuth flow через nodriver. Google (`accounts.google.com`) принимает bpproxy (302), а OAuth-редирект имеет больше шансов пройти.
|
||||
|
||||
## Файлы
|
||||
|
||||
- `grok_nodriver.py` — nodriver + email signup (DrissionPage-совместимый API)
|
||||
- `grok_google_oauth.py` — nodriver + Google OAuth с Gmail аккаунтами
|
||||
- `proxy_forwarder_9129.py` — локальный HTTP forward proxy на порту 9129
|
||||
|
||||
## Требования
|
||||
|
||||
- `nodriver` (pip install nodriver)
|
||||
- `pyotp` для TOTP 2FA
|
||||
- Gmail аккаунты в формате `tusk_gmail_accounts.json`:
|
||||
```json
|
||||
[{"email": "...@gmail.com", "password": "...", "2fa_secret": "..."}]
|
||||
```
|
||||
- Локальный proxy forwarder с bpproxy residential (Google принимает bpproxy)
|
||||
|
||||
## Flow
|
||||
|
||||
1. Запустить proxy forwarder: `python proxy_forwarder_9129.py`
|
||||
2. `python grok_google_oauth.py N` (N = количество аккаунтов)
|
||||
3. Nodriver открывает Chrome → `accounts.x.ai/sign-up` → ждёт Turnstile (~30 сек)
|
||||
4. Ищет кнопку «Continue with Google» → кликает
|
||||
5. Google OAuth: email → пароль → TOTP (если 2FA) → consent
|
||||
6. Редирект на Grok → аккаунт создан
|
||||
7. Сохраняет SSO в `sso/`
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **Proxy forwarder port conflicts**: не запускать несколько экземпляров на одном порту
|
||||
- **bpproxy hardsession expiry**: прокси могут умереть через несколько часов
|
||||
- **Google может запросить дополнительную верификацию**: phone, recovery email
|
||||
- **TOTP timing**: код валиден 30 секунд, точное время на хосте критично
|
||||
@@ -0,0 +1,21 @@
|
||||
# RainProxy dashboard — CDP + самопроходящий Turnstile (2026-09-10)
|
||||
|
||||
Подтверждённый рабочий паттерн для Vite-SPA с Cloudflare Turnstile, когда headless-инструменты висят.
|
||||
|
||||
## Симптом
|
||||
- dashboard.rainproxy.io — пустая белая страница в Playwright MCP, chrome-devtools MCP и browser-use: бандл `/assets/index.*.js` (~900KB) остаётся `pending` / `ERR_CONNECTION_RESET`, хотя `curl` качает тот же файл (200). Причина сетевая/браузерная, не сайтовая.
|
||||
- Firecrawl stealth рендерит страницу, но интеракт-сессии сгорают между вызовами ("Job not found"), лимит 2 concurrent jobs, MCP-таймаут 60s — многошаговые формы с ожиданием капчи через firecrawl_interact ненадёжны.
|
||||
|
||||
## Рабочее решение: реальный Chrome + CDP
|
||||
1. `chrome.exe --remote-debugging-port=9333 --user-data-dir=<fresh_dir> --no-first-run <url>` через terminal(background=true). Fresh profile обязателен.
|
||||
2. Playwright `connect_over_cdp("http://127.0.0.1:9333")` → `b.contexts[0]` → найти страницу по подстроке URL.
|
||||
3. Заполнить поля по id (`#first_name`, `#email`, `#password`, `pg.check('#agree')`).
|
||||
4. **Turnstile проходит САМ** в реальном Chrome — не кликать, просто поллить:
|
||||
`document.querySelector('[name=cf-turnstile-response]').value.length > 10` (каждые 2 сек, до 30 итераций; типично 10-20 сек).
|
||||
5. Клик Register → редирект на /verify-email?vfemail=<base64(email)>.
|
||||
|
||||
## Pitfalls
|
||||
- Селектор `button:has-text("Login")` может попасть на соседнюю "Login with Google" (содержит подстроку) → неожиданный редирект на accounts.google.com. Google OAuth требует РЕАЛЬНЫЙ пароль аккаунта; IMAP app-пароль не подходит.
|
||||
- Валидатор email отклоняет плюс-алиасы (`user+tag@gmail.com` → "Please enter a valid email").
|
||||
- Gmail UTF-7 имена папок при русской локали: Spam = `"[Gmail]/&BCEEPwQwBDw-"`, All Mail = `"[Gmail]/&BBIEQQRP- &BD8EPgRHBEIEMA-"`. IMAP SEARCH с OR-критериями → BAD 'Could not parse command'; использовать SEARCH ALL / SINCE + фильтр в Python.
|
||||
- Verify-письмо RainProxy на Gmail dot-алиас не пришло за ~3 мин (2 отправки). Для массовых регов использовать отдельный почтовый пул (t-online.de), не Gmail-алиасы.
|
||||
Reference in New Issue
Block a user