<?php

// BotBot API ayarları
$BASE_URL = "https://api.botbot.com.tr/api/v1";
$HEADERS_BASE = array(
    "accept: application/json, text/plain, */*",
    "Accept-Encoding: gzip",
    "Connection: Keep-Alive",
    "Content-Type: application/json",
    "Host: api.botbot.com.tr",
    "source: VoltBot",
    "User-Agent: okhttp/4.9.2"
);

// Rastgele email üretme fonksiyonu
function generate_random_email() {
    $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $emailPart = '';
    for ($i = 0; $i < 8; $i++) {
        $emailPart .= $chars[rand(0, strlen($chars) - 1)];
    }
    return $emailPart . "@gmail.com";
}

// Rastgele identity üretme fonksiyonu
function generate_identity() {
    $prefixes = array("UK", "US", "AG");
    $prefix = $prefixes[array_rand($prefixes)];
    $numbers = '';
    for ($i = 0; $i < 6; $i++) {
        $numbers .= rand(0, 9);
    }
    return $prefix . $numbers;
}

// Rastgele phone üretme fonksiyonu
function generate_phone() {
    return "5" . str_pad(rand(0, 99999999), 8, '0', STR_PAD_LEFT);
}

// cURL ile istek gönderme fonksiyonu
function send_request($url, $method = 'GET', $data = null, $headers = null) {
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    
    // Proxy ayarları
    curl_setopt($ch, CURLOPT_PROXY, 'rp.scrapegw.com:6060');
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'ccb7t99f1xa6q6v:e88zmabjie6wuek');
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
    
    if ($method === 'POST') {
        curl_setopt($ch, CURLOPT_POST, true);
        if ($data) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        }
    }
    
    if ($headers) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    return array(
        'status_code' => $httpCode,
        'response' => $response,
        'json' => json_decode($response, true)
    );
}

// Hesap kayıt fonksiyonu
function register_account($email, $identity_no, $phone) {
    global $BASE_URL, $HEADERS_BASE;
    
    $url = $BASE_URL . "/auth/register";
    $payload = array(
        "name" => "efe",
        "surname" => "adam",
        "email" => $email,
        "identityNo" => $identity_no,
        "city" => "İstanbul",
        "gender" => 1,
        "birthDate" => "1997-07-29T20:25:00.000Z",
        "isApproved" => true,
        "phone" => $phone,
        "countryCode" => "213"
    );
    
    echo "[*] Kayıt olunuyor...\n";
    $response = send_request($url, 'POST', $payload, $HEADERS_BASE);
    
    return $response;
}

// OTP gönderme fonksiyonu
function send_otp($email) {
    global $BASE_URL, $HEADERS_BASE;
    
    $url = $BASE_URL . "/auth/send-mail-otp";
    $payload = array("Email" => $email);
    
    $response = send_request($url, 'POST', $payload, $HEADERS_BASE);
    
    if (isset($response['json']['data']['otpCode'])) {
        return $response['json']['data']['otpCode'];
    }
    return null;
}

// OTP doğrulama fonksiyonu
function verify_otp($email, $otp) {
    global $BASE_URL, $HEADERS_BASE;
    
    $url = $BASE_URL . "/auth/verify-email-otp";
    $payload = array("Email" => $email, "OtpCode" => $otp);
    
    $response = send_request($url, 'POST', $payload, $HEADERS_BASE);
    
    if (isset($response['json']['data']['token'])) {
        return $response['json']['data']['token'];
    }
    return null;
}

// Token'ı dosyaya kaydetme fonksiyonu
function save_token($email, $token) {
    $data = date('Y-m-d H:i:s') . " | Email: " . $email . " | Token: " . $token . "\n";
    file_put_contents('tokenhesap.txt', $data, FILE_APPEND | LOCK_EX);
}

// Ana program döngüsü
echo "=== BotBot Token Toplama Sistemi ===\n\n";

// Dosyayı temizle
file_put_contents('tokenhesap.txt', '');

echo "=== HESAP OLUŞTURULUYOR ===\n";

$email = generate_random_email();
$identity = generate_identity();
$phone = generate_phone();

echo "Email: " . $email . "\n";
echo "Identity: " . $identity . "\n";
echo "Phone: " . $phone . "\n\n";

// Hesap kaydı
$register_resp = register_account($email, $identity, $phone);

if ($register_resp['status_code'] == 200 && !$register_resp['json']['hasError']) {
    echo "[✓] Kayıt başarılı!\n";
} else {
    echo "[!] Kayıt başarısız!\n";
    exit;
}

// OTP gönderme
echo "[*] OTP gönderiliyor...\n";
$otp = send_otp($email);

if ($otp) {
    echo "[✓] OTP alındı: " . $otp . "\n";
} else {
    echo "[!] OTP alınamadı!\n";
    exit;
}

// OTP doğrulama
echo "[*] OTP doğrulanıyor...\n";
$token = verify_otp($email, $otp);

if ($token) {
    echo "[✓] Token alındı!\n";
    echo "[💾] Token dosyaya kaydediliyor...\n";
    
    // Token'ı dosyaya kaydet
    save_token($email, $token);
    
    echo "[✅] Token başarıyla kaydedildi!\n";
    echo "[📁] Dosya: tokenhesap.txt\n";
    echo "\n[🎉] İşlem tamamlandı!\n";
    
} else {
    echo "[!] OTP doğrulanamadı!\n";
    exit;
}

?>
