66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# t-online.de Claim Flow — детали реализации
|
||
|
||
## IMAP: baseline-based поиск новых писем
|
||
|
||
Проблема: старый подход искал verification-письма по `FROM "tokenharbor"`, но не находил их, если письмо уже прочитано или ушло в архив.
|
||
|
||
Решение: **baseline-based** — запоминаем текущие UID до клика «Verify email», затем ждём только новые UID.
|
||
|
||
```python
|
||
# 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-письмо.
|
||
|
||
```javascript
|
||
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. Клик по кнопке в хедере дашборда: «1 gift ready to claim» → открывает модалку
|
||
2. Клик по «Claim» внутри модалки
|
||
|
||
```javascript
|
||
// 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» |