File size: 3,049 Bytes
151177d
 
 
 
 
 
 
 
 
 
2136acd
151177d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/* CRON SCRIPT v2 (Updated for UltraPartners API) */

// === НАСТРОЙКИ НОВОГО API ===
$apiKey = getenv('API_KEY');
if (!$apiKey) {
    // Fallback for local testing or if env var is missing (Optional: remove hardcoded key for production)
    $apiKey = "26-c0f6f3fefa70cdb761af4e80aae635bf"; 
}
define("API_KEY", $apiKey);
define("OFFER_ID", "33"); // ID оффера
define("API_URL", "https://ultrapartners.space/api/wm/flows.json");

// === НАСТРОЙКИ СИСТЕМЫ (Не менять для совместимости с index.php) ===
define("CACHE_FILE", "domain_cache.txt");
define("XOR_KEY", "ui-sess-v4-8921-xb-log"); // Ключ должен совпадать с index.php

// Функция шифрования (Оставляем как было для index.php)
function xor_encode($string, $key) {
    $out = '';
    for ($i = 0; $i < strlen($string); $i++) {
        $out .= $string[$i] ^ $key[$i % strlen($key)];
    }
    return base64_encode($out); 
}

// Новая функция получения ссылки (Логика из new_get.php)
function fetchTargetUrl() {
    $requestUrl = API_URL . "?id=" . API_KEY . "&offer=" . OFFER_ID;
    
    $ch = curl_init($requestUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode === 200 && !empty($response)) {
        $data = json_decode($response, true);
        
        // Логика поиска URL в ответе (обходим массив, так как ключи могут меняться)
        if (is_array($data) && count($data) > 0 && !isset($data['error'])) {
            foreach ($data as $item) {
                if (isset($item['url']) && !empty($item['url'])) {
                    // Возвращаем найденную ссылку
                    // Примечание: stripslashes нужен, если JSON экранирует слеши
                    return stripslashes($item['url']);
                }
            }
        }
    }
    return false;
}

// === ОСНОВНОЙ ПРОЦЕСС ===

$targetUrl = fetchTargetUrl();

if ($targetUrl) {
    // Шифруем полученную ссылку ключом, который знает index.php
    $encrypted = xor_encode($targetUrl, XOR_KEY);

    // Безопасная запись с блокировкой (как в старом скрипте)
    $fp = fopen(CACHE_FILE, 'c');
    if (flock($fp, LOCK_EX)) { 
        ftruncate($fp, 0); 
        fwrite($fp, $encrypted);
        fflush($fp); 
        flock($fp, LOCK_UN); 
    }
    fclose($fp);
    
    echo "OK: Updated to " . substr($targetUrl, 0, 30) . "... at " . date("H:i:s");
} else {
    echo "ERROR: Could not fetch URL from API at " . date("H:i:s");
}
?>