/** * Series search functionality for FS7 */ // Handle series search async function handleSeriesSearch() { const searchInput = document.getElementById('seriesSearchInput'); const resultsContainer = document.getElementById('seriesSearchResults'); if (!searchInput || !resultsContainer) return; const query = searchInput.value.trim(); if (!query) { alert('Veuillez entrer un nom de série'); return; } try { resultsContainer.innerHTML = '
Recherche de séries TV en cours...
'; // Search on series providers using the dedicated endpoint const response = await fetch(`${API_BASE}/series/search?q=${encodeURIComponent(query)}&lang=vf`); const data = await response.json(); if (data.results && data.results['fs7'] && data.results['fs7'].length > 0) { const series = data.results['fs7']; let html = `

📺 Résultats pour "${escapeHtml(query)}"

`; series.forEach(s => { let coverImage = s.cover_image || ''; // Convert relative poster.php URLs to absolute URLs if (coverImage.startsWith('/poster.php?url=')) { const actualUrl = coverImage.replace('/poster.php?url=', ''); coverImage = actualUrl; } else if (coverImage.startsWith('/')) { coverImage = 'https://fs7.lol' + coverImage; } html += `
${escapeHtml(s.title)}
📺 French Stream
${coverImage ? `
` : ''}
`; }); html += '
'; resultsContainer.innerHTML = html; } else { resultsContainer.innerHTML = `

❌ Aucune série trouvée pour "${escapeHtml(query)}"

Essayez avec un autre titre ou vérifiez l'orthographe

`; } } catch (error) { console.error('Error searching series:', error); resultsContainer.innerHTML = `

❌ Erreur lors de la recherche

${error.message}

`; } } // Load series episodes directly without redirecting to search async function loadSeriesEpisodesDirect(url, title) { const episodesContainer = document.getElementById(`episodes-fs7-${encodeURIComponent(url)}`); if (!episodesContainer) return; try { episodesContainer.innerHTML = '
Chargement des épisodes...
'; const response = await fetch(`${API_BASE}/anime/episodes?url=${encodeURIComponent(url)}&lang=vf`); const data = await response.json(); if (data.episodes && data.episodes.length > 0) { let html = `
`; episodesContainer.innerHTML = html; } else { episodesContainer.innerHTML = '
Aucun épisode disponible
'; } } catch (error) { console.error('Error loading episodes:', error); episodesContainer.innerHTML = `
Erreur: ${error.message}
`; } } // Download series episode async function downloadSeriesEpisode(url, title) { const select = document.getElementById(`select-episodes-${encodeURIComponent(url)}`); if (!select || !select.value) { alert('Veuillez sélectionner un épisode'); return; } const episodeUrl = select.value; try { const response = await fetch(`${API_BASE}/anime/download?url=${encodeURIComponent(episodeUrl)}`, { method: 'POST' }); if (response.ok) { alert(`✅ Téléchargement démarré pour "${title}"`); // Refresh downloads if (typeof loadDownloads === 'function') { loadDownloads(); } } else { const error = await response.json(); const errorMessage = error.detail ? (typeof error.detail === 'string' ? error.detail : JSON.stringify(error.detail)) : 'Impossible de démarrer le téléchargement'; alert(`❌ Erreur: ${errorMessage}`); } } catch (error) { console.error('Download error:', error); alert(`❌ Erreur lors du téléchargement: ${error.message}`); } } // Make functions available globally window.handleSeriesSearch = handleSeriesSearch; window.loadSeriesEpisodesDirect = loadSeriesEpisodesDirect; window.downloadSeriesEpisode = downloadSeriesEpisode;