Spaces:
Runtime error
Runtime error
File size: 1,570 Bytes
680bb69 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
async function performSearch() {
const searchInput = document.getElementById('searchInput');
const query = searchInput.value.trim();
if (!query) return;
try {
const response = await fetch(`/api/search?query=${encodeURIComponent(query)}`);
const results = await response.json();
displayResults(results);
} catch (error) {
console.error('Search failed:', error);
alert('Failed to perform search');
}
}
function displayResults(results) {
const resultsContainer = document.getElementById('results');
resultsContainer.innerHTML = '';
results.forEach(result => {
const resultElement = document.createElement('div');
resultElement.className = 'result-item';
resultElement.textContent = result.title;
resultElement.onclick = () => playAudio(result.id);
resultsContainer.appendChild(resultElement);
});
}
async function playAudio(id) {
try {
const response = await fetch(`/api/audio/${id}`);
const { audioUrl, title } = await response.json();
const audioPlayer = document.getElementById('audioPlayer');
audioPlayer.src = audioUrl;
audioPlayer.style.display = 'block';
audioPlayer.play();
} catch (error) {
console.error('Failed to play audio:', error);
alert('Failed to play audio');
}
}
// Add enter key support for search
document.getElementById('searchInput').addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
performSearch();
}
}); |