Files

20 KiB
Raw Permalink Blame History

name, description, triggers
name description triggers
th-autoreg TokenHarbor auto-registration via local API + VPS gateway push
авторег
tokenharbor
зарегай ключи
th ключи
регистрация tokenharbor
tokenhabor

TokenHarbor Auto-Reg

Авторегистрация TokenHarbor с $5 gift claim через Chrome CDP + пуш ключей на VPS-шлюз. Два режима: t-online.de пул (основной — с $5) и Gmail+alias (запасной — может быть заблокирован).

Быстрый старт: t-online.de пул (с $5, основной)

Правило: пользователь сказал «авторег» / «забери $5» = запускай th_tonline_claim.py. Пул t-online.de принимает письма TokenHarbor (вопреки раннему ошибочному выводу — проверка на 20+ аккаунтах показала, что письма доходят).

# 1. Chrome с CDP
taskkill /F /IM chrome.exe 2>/dev/null
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" \
  --remote-debugging-port=9222 --remote-allow-origins=* \
  --user-data-dir=%USERPROFILE%/.chrome-cdp-profile

# 2. Ждать 5 сек, проверить
sleep 5 && curl -s http://127.0.0.1:9222/json/version

# 3. Запустить (N аккаунтов, фоновый режим)
cd "C:/Users/User/Desktop/авторег проект" && python -u th_tonline_claim.py 100 &

Быстрый старт: Gmail+alias (запасной, может быть заблокирован)

Использовать th_gmail_reg.py. Внимание: TokenHarbor может заблокировать Gmail+alias после первого аккаунта (письма перестают приходить на [REDACTED-NAME]+th{N}@gmail.com).

cd "C:/Users/User/Desktop/авторег проект" && python -u th_gmail_reg.py 100 &

t-online.de архитектура (основной режим)

IMAP: secureimap.t-online.de:993, пароли из working_mails.txt (формат email:password). Пул: 17893 аккаунтов. Каждый имеет индивидуальный пароль для IMAP.

Каждый аккаунт проходит полный цикл:

  1. Login на TokenHarbor с email + TokenHarbor2026!X (общий пароль на сайте)
  2. Проверка верификации: если на дашборде есть «Verify your email» — клик по кнопке → отправка НОВОГО письма
  3. IMAP-ожидание: baseline-based поиск (только новые UID, не перебор старых) → ждать verify-ссылку до 60 сек
  4. Верификация: переход по https://tokenharbor.ai/verify-email?token=...
  5. $5 claim: Dashboard → кнопка «1 gift ready to claim» → модалка → «Claim»
  6. API ключ: /dashboard/api-keys → «+ New key» → заполнить label → «Create key»
  7. Пуш на VPS через POST /th/provider/add?provider=tokenharbor

Если аккаунт уже верифицирован (нет текста «Verify your email» на дашборде) — шаги 2-4 пропускаются.

Gmail+alias архитектура (запасной режим)

Gmail: [REDACTED-NAME]@gmail.com / IMAP_APP_PASSWORD Алиасы: [REDACTED-NAME]+th{N}@gmail.com — все письма падают в один inbox. IMAP: imap.gmail.com:993, поиск по TO "[REDACTED-NAME]+th{N}@gmail.com".

Каждый аккаунт проходит полный цикл:

  1. Signup на TokenHarbor с [REDACTED-NAME]+th{N}@gmail.com
  2. Ожидание verify-письма через Gmail IMAP (поиск по TO)
  3. Переход по verify-ссылке → email verified
  4. Dashboard → кнопка «1 gift ready to claim» → модалка → «Claim» → $5 на балансе
  5. /dashboard/api-keys → «+ New key» → заполнить label → «Create key»
  6. API ключ → пуш на VPS через /provider/add

th_local_api.py Endpoints (t-online.de режим)

Метод Путь Описание
POST /register?count=N&push=true Регистрация N аккаунтов
GET /status Статистика пула и ключей
GET /keys Список всех ключей
POST /push-all Пуш всех неотправленных ключей на VPS
POST /check-all-balances Проверка всех балансов

VPS Gateway

IP: [REDACTED-IP], root, пароль: dYqjygDyTtZ68Y59 URL: https://[REDACTED-NAME].loc.cc/th/ Gateway key: thgw_YOUR_GATEWAY_KEY Сервис: systemctl restart th-gateway, код: /opt/th_gateway/th_gateway.py, стейт: /opt/th_gateway/th_gateway_state.json

Эндпоинты для управления ключами (добавлены патчем):

  • POST /provider/add?provider=X — добавить ключ (body: {"key":"thk_..."})
  • POST /provider/remove?provider=X — удалить ключ (body: {"key":"thk_..."})

Ключи в state.json хранятся как строки (не dict'ы): "keys": ["thk_live_xxx", "thk_live_yyy"].

Формат ключа

thk_live_ + 64 символов [a-zA-Z0-9_-].

HTTP-only масс-волна (th_eu_farm.py, без браузера)

Альтернативный CDP-флоу: чистый HTTP через tools.tokenharbor.client.TokenHarborClient (sys.path C:/Users/User/tmp/harbor_check). Скрипты в C:/Users/User/tmp/: th_eu_farm.py (волна), th_do_recover.py (спасение зависших), файлы th_http_accounts.jsonl (банк), th_pending_recover.jsonl (pre-verify persistence), th_eu_used.txt (использованные почты).

Цикл: прокси-пул (ProxyGrab API + geonode + proxy_bot Desktop/proxy_bot/proxies.db alive=1) → check_proxy (ip-api geo + GET tokenharbor.ai/login?mode=signup через прокси) → 2captcha turnstile (SITEKEY 0x4AAAAAADBuC8Knz1EJZx9-, pageurl signup) → signup → persist в th_pending_recover.jsonl ДО verify → IMAP verify-ссылка → verify → login → create_api_key('eu') → enable_free_models() → append в th_http_accounts.jsonl.

Пуш ключа в шлюз api.[REDACTED-NAME].com (new-api): INSERT в channels БЕЗ UI не создаёт abilities — вставлять и channel, и abilities-строки на каждую модель вручную, PRAGMA busy_timeout=25000, затем systemctl restart new-api. base_url пустой = дефолтный openai-роутинг, канал мёртв. Текущая подача TH: base_url='http://127.0.0.1:8790' (th-shim на VPS — direct-first + прокси-пул + home-туннель, лечит TH per-IP 429); прямой https://tokenharbor.ai — только если шим снят с эксплуатации. Детали: skill ai-api-gateway-operations → references/newapi-channel-operations.md; шим/автопуш-контур: references/wave-farm-scaling-and-autopush.md.

CRITICAL — HTTP-акки рождаются с балансом $0 ($5 клеймит только CDP-claim флоу). На таком ключе платный claude-haiku-5.5 = 402 insufficient_user_quota, а claude-haiku-5.5:free отвечает 200 — но только после enable_free_models() (без него 404 model not found — это НЕ протухший ключ). Канал в шлюзе обязан нести models='claude-haiku-5.5' + model_mapping='{"claude-haiku-5.5":"claude-haiku-5.5:free"}': люди запрашивают оригинальное имя, апстрим получает :free. Прямой smoke ключа без :free/маппинга даст ложный вердикт «ключ дохлый».

Pitfalls масс-волны

  • IMAP SEARCH ALL падает на больших ящиках (18k+ писем) с «unterminated line» — искать по SUBJECT "Token Harbor" или UNSEEN с ограничением диапазона, не ALL.
  • recovery-файл нужно чистить после успешного прогона — иначе следующий запуск th_do_recover повторно обрабатывает те же акки: дубли в банке, дубли ключей, дубли каналов в шлюзе.
  • Параллельные волны ОБЯЗАНЫ разводить почты: чанк-файлы из глобального free-листа (все used-реестры + банк + pending вычесть, разделить на N) или непересекающиеся offset-срезы + отдельные used-файлы на волну. Общий used-файл гонку не лечит — обе волны берут одну почту одновременно.
  • Прокси-пул волн читать с ORDER BY RANDOM() — статический LIMIT сажает все волны на один верх пула (один exit-IP → TH-бан сети, волны почти не дают SIGNUP OK).
  • Сигнатуры TH-троттлинга: «Too many sign-ups from this network» = бан IP (банить прокси, ротить); «You're doing that a bit fast — take a breath» = глобальный rate-limit (пэйсинг 40-70с между сайнапами); «email is already on board» = почта уже зарегистрирована (скип, не бан IP).
  • TH режет free-аккаунты по сетевому адресу и для CHAT («Rate limit reached: many free accounts are sharing this network address»): DC-IP сервера не годится для подачи free-ключей никогда, home-IP сжигается recovery-логинами/сайнапами, free-прокси проходят GET /models но не chat POST. Serving-выходы и signup-выходы разводить; health-чек прокси — только реальным chat POST; paid-резидентки со свежей сессией на запрос — единственный стабильный выход. Полная диагностика ног шима и таймауты: references/wave-farm-scaling-and-autopush.md §5.
  • Прокси с разными портами одного хоста = один exit-IP (видно по ip-api в check_proxy) — не считать их разными прокси, TH-лимит на сеть срежет после 1-2 акков.
  • Фри-прокси кончились (цикл «no good proxies - sleep 300») → фолбэк 1024proxy DE-резидентки: http://prxg746509-region-de-sess{N}:{PASS}@hk.1024proxy.io:3000, где N = случайное число на КАЖДЫЙ сайнап (новый sess-номер = новый немецкий exit-IP). Пароль лежит в tmp/notion_autoreg/dbg_chat.py (не хардкодить в новые файлы). Проверено на TH: signup-страница 200, SIGNUP OK с первого захода. Паттерн отдельной волны: скопировать farm-скрипт, заменить gather_proxies() на генератор пачки свежих сессий (24 шт за вызов), свой mail-offset и свой used-файл. Трафик на сайнап ~1-2MB — 2GB баланса хватает на сотни регистраций.
  • Зомби-процессы волн накапливаются между рестартами агента — перед запуском новой волны убивать ВСЕ старые по cmdline-матчу th_eu_farm (psutil), иначе две волны жгут почты с одного IP.
  • Фоновый старт может зависнуть на инициализации (процесс alive, CPU ~0, 0 соединений, лог не растёт >5мин) — kill и повторный запуск лечит; перед запуском проверять лог на появление первых строк.
  • verify/login через прокси хрупки: при смерти прокси на этапе verify — retry через TokenHarborClient(proxy=None) (прямое соединение); аккаунт к этому моменту уже должен лежать в pending-файле.
  • Ключи для шлюза валидировать живым chat-запросом (/v1/chat/completions через https://tokenharbor.ai/api/v1/...), не только фактом выдачи.
  • Канал вставлять с tag/priority/weight существующей TH-группы (сверять SELECT DISTINCT tag,priority,weight FROM channels WHERE models LIKE '%claude-haiku-5.5%' AND status=1): new-api роутит по priority — канал с меньшим priority трафика не получит, smoke через шлюз будет зелёный за счёт СТАРЫХ каналов (ложное «добавили и работает»). Фактический роутинг подтверждать распределением channel_id в consume-логе new-api после пачки запросов.

Критические pitfall'ы

0. $5 gift требует email-верификации

Без подтверждения email кнопка Claim в модалке показывает: «We just emailed you a verification link — open it to verify your email, then claim your $5». API /api/welcome/claim возвращает 403 email_not_verified. Вывод: без verify-письма $5 не забрать.

1. Gmail+alias блокируется TokenHarbor после первого аккаунта

При регистрации через [REDACTED-NAME]+th{N}@gmail.com письма верификации приходят только на первый аккаунт. После этого TokenHarbor перестаёт отправлять письма на alias'ы того же Gmail. Использовать t-online.de пул как основной.

1b. t-online.de ПРИНИМАЕТ письма TokenHarbor (коррекция)

Ранее ошибочно считалось, что t-online.de не принимает письма. Проверка на 20+ аккаунтах показала: ~15% имеют verification emails в inbox. Для остальных — клик «Verify email» на дашборде отправляет новое письмо, которое доходит за 10-30 сек.

2. Chrome 151+ — --remote-allow-origins=* ОБЯЗАТЕЛЕН

WebSocket к CDP блокируется с 403 Forbidden. Всегда: chrome.exe --remote-debugging-port=9222 --remote-allow-origins=* --user-data-dir=%USERPROFILE%/.chrome-cdp-profile.

3. React-инпуты — nativeSet ОБЯЗАТЕЛЕН

TokenHarbor на React. input.value = 'x' не работает. Нужно:

var nativeSet = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
nativeSet.call(inp, 'value');
inp.dispatchEvent(new Event('input', {bubbles: true}));
inp.dispatchEvent(new Event('change', {bubbles: true}));

4. API keys page — ТОЛЬКО Page.navigate, НЕ window.location.href

Next.js client-side роутинг не срабатывает через window.location.href = '/dashboard/api-keys' — страница остаётся в состоянии LOADING. Использовать CDP Page.navigate:

cdp["ws"].send(json.dumps({"id": mid, "method": "Page.navigate",
    "params": {"url": "https://tokenharbor.ai/dashboard/api-keys"}}))
time.sleep(8)  # ждать полной загрузки

Ждать пока "API keys" in text and "LOADING" not in text and "Create and manage" in text.

5. Кнопки — проверять offsetParent (видимость)

На странице API keys много скрытых кнопок (от других rows). Всегда:

if(b.textContent.trim() === 'Create key' && !b.disabled && b.offsetParent !== null)

6. Вкладки Chrome — всегда новые

Не переиспользовать залогиненные вкладки. connect_cdp() создаёт новую через PUT /json/new.

7. Gift claim — двухшаговый

Сначала клик по кнопке в хедере («1 gift ready to claim») — открывает модалку. Затем клик по «Claim» внутри модалки. Между шагами time.sleep(2).

8. Rate-limit при массовой регистрации

При быстрой регистрации (>1 акк/мин) TokenHarbor начинает реджектить signup (редирект обратно на /login?mode=signup). Добавлять time.sleep(2) между регистрациями. При массовых фейлах — увеличить паузу до 5-10 сек.

9. «Verify email» кнопка — отправка нового письма

Если аккаунт не верифицирован, на дашборде есть кнопка «Verify your email». Клик по ней отправляет новое verification-письмо (не надо искать старое). Затем IMAP-ожидание с baseline-based поиском (только новые UID, не перебор всей почты). Таймаут ожидания: 60 сек.

10. API key creation — ~7-8% failure rate

Иногда кнопка «Create key» не активируется или ключ не появляется на странице. Это нормально — скрипт продолжает со следующим аккаунтом. Причина не в React-инпутах (nativeSet работает), а в race condition Next.js.

Файлы проекта

  • th_tonline_claim.py — основной скрипт: t-online.de пул, login → verify → $5 → API key → пуш
  • th_gmail_reg.py — запасной скрипт: Gmail+alias (может быть заблокирован)
  • th_local_api.py — HTTP API для t-online.de пула (legacy, без $5)
  • th_tonline_state.json — состояние t-online обработки (done, fail)
  • th_gmail_state.json — состояние Gmail-регистраций
  • tokenharbor_keys.txt — лог всех ключей
  • C:/Users/User/Downloads/Telegram Desktop/working_mails.txt — пул t-online.de (17893 шт)

Связанные references

  • references/wave-farm-scaling-and-autopush.md — масштабирование до N волн (чанк-сплит почт, рандом proxies, зомби-дедуп), recovery-одноразовость, th-shim (:8790, content-encoding HOP-strip, gzip-ловушка мелких смоков, breaker, cron-пересборка пула 2ч chat-пробой), cron-автопуш ключей в шлюз каждые 15 мин, reuse почтовых пулов мёртвых волн, smoke-дисциплина ('Bea'+'rer ')
  • references/react-input-fix.md — полный код React-совместимого ввода в CDP
  • references/chrome-cdp-launch.md — процедура запуска Chrome с CDP (Chrome 151+)
  • references/gateway-endpoints.md — документированные эндпоинты VPS шлюза
  • references/gmail-alias-flow.md — полный цикл Gmail+alias: signup → verify → $5 → API key
  • references/tonline-claim-flow.md — t-online.de поток: baseline IMAP, кнопка Verify, $5 claim, статистика