itis-blocked-sites/js/fetch.js

48 lines
1.9 KiB
JavaScript

function fetchData() {
fetch('https://api.vichingo455.freeddns.org/itisBlocklist.json', {
method: 'GET',
cache: 'no-store'
})
.then(response => {
if (!response.ok) {
throw new Error('Errore nel caricamento del file JSON');
}
return response.json();
})
.then(siti => {
const tbody = document.querySelector('#tabella-siti tbody');
tbody.innerHTML = ""; // Inizializzazione vuota per non creare problemi col timer
siti.forEach(sito => {
const statoTesto = sito.stato || "Sconosciuto";
const note = sito.note || "";
// Definisce la colorazione dei vari stati
let classeStato = "";
const statoLower = statoTesto.toLowerCase();
if (statoLower == "non bloccato") {
classeStato = "sbloccato";
} else if (statoLower.includes("sbloccato")) {
classeStato = "sbloccato";
} else if (statoLower.includes("bloccato")) {
classeStato = statoLower.includes("parzialmente") ? "parziale" : "bloccato";
} else {
classeStato = "unknown";
}
// Inserisce i dati ottenuti in una riga della tabella
const riga = document.createElement('tr');
riga.innerHTML = `
<td>${sito.nome}</td>
<td><a href="${sito.url}" target="_blank">${sito.url}</a></td>
<td><span class="stato ${classeStato}">${statoTesto}</span></td>
<td class="note">${note}</td>
`;
tbody.appendChild(riga);
});
})
.catch(error => {
alert('Errore durante il caricamento dei dati, per favore riprova o riporta il problema su GitHub: https://github.com/emmev-code/itis-blocked-sites');
console.log('Log errore (utile per riportare il problema):', error);
});
}
fetchData();
setInterval(fetchData,15000);