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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/private_html/api/track_failed_notification.php
<?php
session_start();
header('Content-Type: application/json');

// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
    echo json_encode([
        'success' => false,
        'message' => 'User not logged in'
    ]);
    exit;
}

$track_id = $_GET['track_id'] ?? null;

if (!$track_id) {
    echo json_encode([
        'success' => false,
        'message' => 'Track ID required'
    ]);
    exit;
}

try {
    require_once '../config/database.php';
    $pdo = getDBConnection();
    
    // Get track information
    $stmt = $pdo->prepare("
        SELECT id, title, prompt, status, created_at, api_task_id, failure_reason
        FROM music_tracks 
        WHERE id = ? AND user_id = ? AND status = 'failed'
    ");
    $stmt->execute([$track_id, $_SESSION['user_id']]);
    $track = $stmt->fetch();
    
    if (!$track) {
        echo json_encode([
            'success' => false,
            'message' => 'Failed track not found'
        ]);
        exit;
    }
    
    // Get failure statistics for this user
    $stmt = $pdo->prepare("
        SELECT 
            COUNT(*) as total_tracks,
            COUNT(CASE WHEN status = 'failed' THEN 1 END) as failed_tracks,
            COUNT(CASE WHEN status = 'complete' THEN 1 END) as completed_tracks
        FROM music_tracks 
        WHERE user_id = ?
    ");
    $stmt->execute([$_SESSION['user_id']]);
    $stats = $stmt->fetch();
    
    // Calculate failure rate
    $failure_rate = $stats['total_tracks'] > 0 ? round(($stats['failed_tracks'] / $stats['total_tracks']) * 100, 1) : 0;
    
    // Determine failure reason and suggestions
    $failure_analysis = analyzeFailure($track, $failure_rate);
    
    echo json_encode([
        'success' => true,
        'data' => [
            'track' => $track,
            'stats' => $stats,
            'failure_rate' => $failure_rate,
            'analysis' => $failure_analysis
        ]
    ]);
    
} catch (Exception $e) {
    error_log("Track failure notification error: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'message' => 'Database error occurred'
    ]);
}

function analyzeFailure($track, $failure_rate) {
    $analysis = [
        'likely_cause' => 'Unknown',
        'suggestions' => [],
        'severity' => 'normal'
    ];
    
    // Analyze based on failure rate
    if ($failure_rate > 50) {
        $analysis['severity'] = 'high';
        $analysis['likely_cause'] = 'High failure rate detected';
        $analysis['suggestions'][] = 'Consider reviewing your prompt writing style';
        $analysis['suggestions'][] = 'Try simpler, more specific prompts';
        $analysis['suggestions'][] = 'Contact support if issues persist';
    } elseif ($failure_rate > 20) {
        $analysis['severity'] = 'medium';
        $analysis['likely_cause'] = 'Moderate failure rate';
        $analysis['suggestions'][] = 'Try different music styles or genres';
        $analysis['suggestions'][] = 'Keep prompts clear and specific';
    } else {
        $analysis['severity'] = 'low';
        $analysis['likely_cause'] = 'Occasional failure (normal)';
        $analysis['suggestions'][] = 'This is likely a temporary issue';
        $analysis['suggestions'][] = 'Try the retry button';
    }
    
    // Analyze prompt content if available
    if (!empty($track['prompt'])) {
        $prompt = strtolower($track['prompt']);
        
        // Check for potential issues
        if (strpos($prompt, 'copyright') !== false || strpos($prompt, 'cover') !== false) {
            $analysis['likely_cause'] = 'Copyright-related content';
            $analysis['suggestions'][] = 'Avoid referencing copyrighted material';
            $analysis['suggestions'][] = 'Create original content instead';
        } elseif (strpos($prompt, 'explicit') !== false || strpos($prompt, 'profanity') !== false) {
            $analysis['likely_cause'] = 'Inappropriate content';
            $analysis['suggestions'][] = 'Keep content family-friendly';
            $analysis['suggestions'][] = 'Avoid explicit language';
        } elseif (strlen($track['prompt']) > 500) {
            $analysis['likely_cause'] = 'Prompt too long';
            $analysis['suggestions'][] = 'Keep prompts under 500 characters';
            $analysis['suggestions'][] = 'Be more concise and specific';
        }
    }
    
    // Add general suggestions
    $analysis['suggestions'][] = 'Try different music styles (pop, rock, electronic, etc.)';
    $analysis['suggestions'][] = 'Use clear, descriptive language';
    $analysis['suggestions'][] = 'Specify mood, tempo, or instruments';
    
    return $analysis;
}
?> 

CasperSecurity Mini