2.9 KiB
2.9 KiB
t-online.de Claim Flow — детали реализации
IMAP: baseline-based поиск новых писем
Проблема: старый подход искал verification-письма по FROM "tokenharbor", но не находил их, если письмо уже прочитано или ушло в архив.
Решение: baseline-based — запоминаем текущие UID до клика «Verify email», затем ждём только новые UID.
# Get baseline UIDs
status, baseline = mail.search(None, 'ALL')
known_ids = set(baseline[0].split()) if baseline[0] else set()
# Wait for new emails
while time.time() - start < timeout:
mail.select("INBOX")
status, data = mail.search(None, 'ALL')
new_ids = set(data[0].split()) - known_ids
for mid in sorted(new_ids, reverse=True):
# parse email, check for verify link
«Verify email» кнопка — отправка нового письма
На дашборде TokenHarbor, если аккаунт не верифицирован, есть текст «Verify your email» и кнопка. Клик по ней отправляет новое verification-письмо.
for(var b of document.querySelectorAll('button')) {
if((b.textContent.includes('Verify') && b.textContent.includes('email')) && b.offsetParent !== null) {
b.click(); break;
}
}
$5 Gift Claim — двухшаговый
- Клик по кнопке в хедере дашборда: «1 gift ready to claim» → открывает модалку
- Клик по «Claim» внутри модалки
// Step 1: open modal
for(var b of document.querySelectorAll('button')) {
if((b.textContent.includes('Claim') || b.textContent.includes('Gift')) && b.offsetParent !== null) {
b.click(); break;
}
}
// Step 2: claim in modal
for(var b of document.querySelectorAll('button')) {
if(b.textContent.trim() === 'Claim' && b.offsetParent !== null) {
b.click(); break;
}
}
Статистика успешности
- ~85% аккаунтов уже верифицированы (из предыдущего раунда регистрации)
- ~15% требуют отправки нового verification-письма
- ~7-8% фейлов на этапе создания API ключа (race condition Next.js)
- Общая скорость: ~1 акк/мин (логин → verify → $5 → ключ → пуш)
Пароли
- TokenHarbor сайт:
TokenHarbor2026!X(единый для всех аккаунтов) - IMAP t-online.de: индивидуальные пароли из
working_mails.txt(форматemail:password) - Некоторые пароли в пуле устарели (~5-10%) — скрипт пропускает их с ошибкой «Invalid login»