diff --git a/src/scripts/anime/anime.js b/src/scripts/anime/anime.js index 0bb111f..9536c5c 100644 --- a/src/scripts/anime/anime.js +++ b/src/scripts/anime/anime.js @@ -1,335 +1,277 @@ -const searchInput = document.getElementById('search-input'); -const searchResults = document.getElementById('search-results'); -let searchTimeout; -let availableExtensions = []; - -searchInput.addEventListener('input', (e) => { - const query = e.target.value; - clearTimeout(searchTimeout); - if (query.length < 2) { - searchResults.classList.remove('active'); - searchResults.innerHTML = ''; - searchInput.style.borderRadius = '99px'; - return; - } - searchTimeout = setTimeout(() => { - - fetchSearh(query); - }, 300); -}); - -document.addEventListener('click', (e) => { - if (!e.target.closest('.search-wrapper')) { - searchResults.classList.remove('active'); - searchInput.style.borderRadius = '99px'; - } -}); - -async function fetchSearh(query) { - try { - let apiUrl = `/api/search?q=${encodeURIComponent(query)}`; - let extensionName = null; - let finalQuery = query; - - const parts = query.split(':'); - if (parts.length >= 2) { - const potentialExtension = parts[0].trim().toLowerCase(); - - const foundExtension = availableExtensions.find(ext => ext.toLowerCase() === potentialExtension); - - if (foundExtension) { - extensionName = foundExtension; - - finalQuery = parts.slice(1).join(':').trim(); - - if (finalQuery.length === 0) { - renderSearchResults([]); - return; - } - - apiUrl = `/api/search/${extensionName}?q=${encodeURIComponent(finalQuery)}`; - } - } - - const res = await fetch(apiUrl); - const data = await res.json(); - - const resultsWithExtension = (data.results || []).map(anime => { - if (extensionName) { - return { - ...anime, - isExtensionResult: true, - extensionName: extensionName - }; - } - return anime; - }); - - renderSearchResults(resultsWithExtension); - } catch (err) { - console.error("Search Error:", err); - } -} - -async function loadContinueWatching() { - const token = localStorage.getItem('token'); - if (!token) return; - - try { - const res = await fetch('/api/list/filter?status=watching&entry_type=ANIME', { - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${token}` - } - }); - - if (!res.ok) return; - - const data = await res.json(); - const list = data.results || []; - - renderContinueWatching('my-status', list); - - } catch (err) { - console.error('Continue Watching Error:', err); - } -} - -function renderContinueWatching(id, list) { - const container = document.getElementById(id); - if (!container) return; - - container.innerHTML = ''; - - if (list.length === 0) { - container.innerHTML = `
Ep ${progressText} - ${item.source}
${score}% • ${ep}
-