Spaces:
Sleeping
Sleeping
| // Debug: Check if script is loaded | |
| console.log('Scripts.js loaded successfully'); | |
| document.addEventListener('DOMContentLoaded', function() { | |
| console.log('DOM loaded, initializing form handler'); | |
| const form = document.getElementById('avatarForm'); | |
| if (!form) { | |
| console.error('Avatar form not found!'); | |
| return; | |
| } | |
| form.addEventListener('submit', async (e) => { | |
| e.preventDefault(); | |
| console.log('Form submitted'); | |
| const imageInput = document.getElementById('imageInput'); | |
| const textInput = document.getElementById('textInput'); | |
| if (!imageInput.files[0]) { | |
| alert('Please select an image'); | |
| return; | |
| } | |
| if (!textInput.value.trim()) { | |
| alert('Please enter some text'); | |
| return; | |
| } | |
| const formData = new FormData(); | |
| formData.append('image', imageInput.files[0]); | |
| formData.append('text', textInput.value); | |
| // Show loading state | |
| const btn = document.querySelector('button[type="submit"]'); | |
| btn.disabled = true; | |
| btn.innerHTML = '<span class="spinner-border spinner-border-sm me-2" role="status"></span> Processing...'; | |
| try { | |
| console.log('Sending request to /generate'); | |
| const response = await fetch('/generate', { | |
| method: 'POST', | |
| body: formData | |
| }); | |
| if (!response.ok) { | |
| throw new Error(`HTTP error! status: ${response.status}`); | |
| } | |
| const data = await response.json(); | |
| console.log('Response received:', data); | |
| if (data.error) { | |
| throw new Error(data.error); | |
| } | |
| // Display result | |
| const video = document.getElementById('outputVideo'); | |
| video.src = data.video; | |
| document.getElementById('result').classList.remove('d-none'); | |
| // Set up download | |
| document.getElementById('downloadBtn').onclick = () => { | |
| const a = document.createElement('a'); | |
| a.href = data.video; | |
| a.download = 'talking_avatar.mp4'; | |
| a.click(); | |
| }; | |
| } catch (error) { | |
| console.error('Error:', error); | |
| alert('Error: ' + error.message); | |
| } finally { | |
| btn.disabled = false; | |
| btn.innerHTML = '<i class="fas fa-magic me-2"></i>Generate Video'; | |
| } | |
| }); | |
| }); |