![]() 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/ |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SoundStudioPro - Complete Flow Test</title>
<style>
body {
font-family: Arial, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 2rem;
}
.container {
max-width: 800px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.1);
padding: 2rem;
border-radius: 16px;
backdrop-filter: blur(10px);
}
.btn {
background: linear-gradient(135deg, #48bb78, #38a169);
color: white;
padding: 1rem 2rem;
border: none;
border-radius: 8px;
cursor: pointer;
font-size: 1.2rem;
margin: 1rem 0;
}
.btn:hover {
transform: translateY(-2px);
}
.status {
margin: 1rem 0;
padding: 1rem;
border-radius: 8px;
background: rgba(255, 255, 255, 0.1);
}
.audio-player {
margin: 1rem 0;
}
audio {
width: 100%;
}
.download-btn {
display: inline-block;
background: linear-gradient(135deg, #667eea, #764ba2);
color: white;
padding: 0.8rem 1.5rem;
text-decoration: none;
border-radius: 8px;
margin-top: 1rem;
}
</style>
</head>
<body>
<div class="container">
<h1>🎵 SoundStudioPro - Complete Flow Test</h1>
<div class="status" id="status">
Ready to test music creation flow...
</div>
<button class="btn" onclick="testMusicCreation()">Create Test Music</button>
<button class="btn" onclick="simulateCallback()">Simulate Callback</button>
<button class="btn" onclick="checkResults()">Check Results</button>
<div id="results" style="display: none;">
<h3>Generated Music:</h3>
<div class="audio-player">
<audio controls id="audioElement">
Your browser does not support the audio element.
</audio>
</div>
<a href="#" class="download-btn" id="downloadBtn">
Download MP3
</a>
</div>
</div>
<script>
let currentTaskId = null;
async function testMusicCreation() {
const status = document.getElementById('status');
status.innerHTML = 'Creating music task...';
try {
const response = await fetch('/api.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
action: 'music',
prompt: 'A beautiful piano melody for testing',
model: 'v3',
duration: 30
})
});
const result = await response.json();
console.log('API Response:', result);
if (result.success && result.data.status === 'processing') {
currentTaskId = result.data.taskId;
status.innerHTML = `Task created! ID: ${currentTaskId}<br>Status: ${result.data.message}`;
} else {
status.innerHTML = `Error: ${result.error || 'Unknown error'}`;
}
} catch (error) {
status.innerHTML = `Error: ${error.message}`;
console.error('Error:', error);
}
}
async function simulateCallback() {
if (!currentTaskId) {
alert('Please create a task first!');
return;
}
const status = document.getElementById('status');
status.innerHTML = 'Simulating callback...';
try {
const response = await fetch('/callback.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
task_id: currentTaskId,
status: 'complete',
audio_url: 'https://www.soundjay.com/misc/sounds/bell-ringing-05.wav',
title: 'Test Music - Piano Melody',
duration: 30
})
});
const result = await response.json();
console.log('Callback Response:', result);
if (result.success) {
status.innerHTML = `Callback simulated successfully!<br>Task ID: ${result.task_id}<br>Status: ${result.status}`;
} else {
status.innerHTML = `Callback Error: ${result.error}`;
}
} catch (error) {
status.innerHTML = `Error: ${error.message}`;
console.error('Error:', error);
}
}
async function checkResults() {
if (!currentTaskId) {
alert('Please create a task first!');
return;
}
const status = document.getElementById('status');
status.innerHTML = 'Checking for results...';
try {
const response = await fetch(`/get_result.php?taskId=${currentTaskId}`);
const result = await response.json();
console.log('Result Response:', result);
if (result.success && result.status === 'complete') {
status.innerHTML = `✅ Music completed!<br>Title: ${result.data.title}<br>Duration: ${result.data.duration}s`;
// Display the audio
const audioElement = document.getElementById('audioElement');
const downloadBtn = document.getElementById('downloadBtn');
const results = document.getElementById('results');
audioElement.src = result.data.audio_url;
downloadBtn.href = result.data.audio_url;
downloadBtn.download = 'soundstudiopro-test.mp3';
results.style.display = 'block';
} else if (result.success && result.status === 'processing') {
status.innerHTML = `⏳ Still processing...<br>${result.message}`;
} else {
status.innerHTML = `Error: ${result.error || 'Unknown error'}`;
}
} catch (error) {
status.innerHTML = `Error: ${error.message}`;
console.error('Error:', error);
}
}
</script>
</body>
</html>