now on my list page, source dropdown only shows anime and book extensions

This commit is contained in:
2025-12-19 20:01:08 +01:00
parent 4811c4535a
commit 16cf6b3d4f
2 changed files with 48 additions and 24 deletions

View File

@@ -29,20 +29,32 @@ async function populateSourceFilter() {
`; `;
try { try {
const response = await fetch(`${API_BASE}/extensions`); const [animeRes, bookRes] = await Promise.all([
if (response.ok) { fetch(`${API_BASE}/extensions/anime`),
const data = await response.json(); fetch(`${API_BASE}/extensions/book`)
const extensions = data.extensions || []; ]);
extensions.forEach(extName => { const extensions = new Set();
if (extName.toLowerCase() !== 'anilist' && extName.toLowerCase() !== 'local') {
const option = document.createElement('option'); if (animeRes.ok) {
option.value = extName; const data = await animeRes.json();
option.textContent = extName.charAt(0).toUpperCase() + extName.slice(1); (data.extensions || []).forEach(ext => extensions.add(ext));
select.appendChild(option);
}
});
} }
if (bookRes.ok) {
const data = await bookRes.json();
(data.extensions || []).forEach(ext => extensions.add(ext));
}
extensions.forEach(extName => {
const lower = extName.toLowerCase();
if (lower !== 'anilist' && lower !== 'local') {
const option = document.createElement('option');
option.value = extName;
option.textContent = extName.charAt(0).toUpperCase() + extName.slice(1);
select.appendChild(option);
}
});
} catch (error) { } catch (error) {
console.error('Error loading extensions:', error); console.error('Error loading extensions:', error);
} }

View File

@@ -29,20 +29,32 @@ async function populateSourceFilter() {
`; `;
try { try {
const response = await fetch(`${API_BASE}/extensions`); const [animeRes, bookRes] = await Promise.all([
if (response.ok) { fetch(`${API_BASE}/extensions/anime`),
const data = await response.json(); fetch(`${API_BASE}/extensions/book`)
const extensions = data.extensions || []; ]);
extensions.forEach(extName => { const extensions = new Set();
if (extName.toLowerCase() !== 'anilist' && extName.toLowerCase() !== 'local') {
const option = document.createElement('option'); if (animeRes.ok) {
option.value = extName; const data = await animeRes.json();
option.textContent = extName.charAt(0).toUpperCase() + extName.slice(1); (data.extensions || []).forEach(ext => extensions.add(ext));
select.appendChild(option);
}
});
} }
if (bookRes.ok) {
const data = await bookRes.json();
(data.extensions || []).forEach(ext => extensions.add(ext));
}
extensions.forEach(extName => {
const lower = extName.toLowerCase();
if (lower !== 'anilist' && lower !== 'local') {
const option = document.createElement('option');
option.value = extName;
option.textContent = extName.charAt(0).toUpperCase() + extName.slice(1);
select.appendChild(option);
}
});
} catch (error) { } catch (error) {
console.error('Error loading extensions:', error); console.error('Error loading extensions:', error);
} }