Statistiche

This commit is contained in:
La Programmatrice Verde
2025-03-27 20:48:05 +01:00
parent 28eddf888e
commit 85610332f4
7 changed files with 180 additions and 59 deletions

View File

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

Before

Width:  |  Height:  |  Size: 3.0 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@@ -12,15 +12,17 @@
<div class="titolo">OROSCOPO DEI POVERY 2025 AI EDITION</div> <div class="titolo">OROSCOPO DEI POVERY 2025 AI EDITION</div>
<div class="content"> <div class="content">
<center> <center>
<label for="nome">Nome:</label> <label for="nome">Nome:</label>
<input id="nome" name="nome" /> <input id="nome" name="nome" />
<br /> <br />
<label for="segno">Segno:</label> <label for="segno">Segno:</label>
<input id="segno" name="segno" /> <input id="segno" name="segno" />
<div id="output"></div> <br />
<br /> <button onclick="Oroscopo()" id="bottone">
<button onclick="Oroscopo()">Chiedi il tuo pronostico</button> Chiedi il tuo pronostico
</center> </button>
<div id="output"></div>
</center>
</div> </div>
<div class="nomeRiquadro2"><center>Descrizione</center></div> <div class="nomeRiquadro2"><center>Descrizione</center></div>
<div class="desc"> <div class="desc">
@@ -49,7 +51,38 @@
preferenze che potrebbero essere nascoste anche a noi stessi. preferenze che potrebbero essere nascoste anche a noi stessi.
</div> </div>
<div class="nomeRiquadro1"><center>Stats</center></div> <div class="nomeRiquadro1"><center>Stats</center></div>
<div class="stats">lorem</div> <div class="stats" id="stats">
<p>
Utenti che hanno fatto affidamento a questo oroscopo:
<span id="conteggio">0</span>
</p>
<table>
<tr>
<td>Utenti di segno ariete: <span id="conteggioAriete">0</span></td>
<td class="tabellaColonna2">Utenti di segno toro: <span id="conteggioToro">0</span></td>
</tr>
<tr>
<td>Utenti di segno gemelli: <span id="conteggioGemelli">0</span></td>
<td class="tabellaColonna2">Utenti di segno cancro: <span id="conteggioCancro">0</span></td>
</tr>
<tr>
<td>Utenti di segno leone: <span id="conteggioLeone">0</span></td>
<td class="tabellaColonna2">Utenti di segno vergine: <span id="conteggioVergine">0</span></td>
</tr>
<tr>
<td>Utenti di segno bilancia: <span id="conteggioBilancia">0</span></td>
<td class="tabellaColonna2">Utenti di segno scorpione: <span id="conteggioScorpione">0</span></td>
</tr>
<tr>
<td>Utenti di segno sagittario: <span id="conteggioSagittario">0</span></td>
<td class="tabellaColonna2">Utenti di segno capricorno: <span id="conteggioCapricorno">0</span></td>
</tr>
<tr>
<td>Utenti di segno acquario: <span id="conteggioAcquario">0</span></td>
<td class="tabellaColonna2">Utenti di segno pesci: <span id="conteggioPesci">0</span></td>
</tr>
</table>
</div>
<div class="nomeRiquadro3"><center>Controls</center></div> <div class="nomeRiquadro3"><center>Controls</center></div>
<div class="controls"> <div class="controls">
<label for="selezione">Scegliere l'opzione di sfondo:</label> <label for="selezione">Scegliere l'opzione di sfondo:</label>
@@ -69,17 +102,17 @@
<select name="costellazione" id="selezioneCostellazione"> <select name="costellazione" id="selezioneCostellazione">
<option>Tutte</option> <option>Tutte</option>
<option>Ariete</option> <option>Ariete</option>
<option>Bestia satanica</option>
<option>Bilancia</option>
<option>Cancro</option>
<option>Centauro Arciere</option>
<option>Gemelli?</option>
<option>Leone</option>
<option>Pesci</option>
<option>Scorpione</option>
<option>Toro</option> <option>Toro</option>
<option>Vaso rovesciato</option> <option>Gemelli</option>
<option>Vergine?</option> <option>Cancro</option>
<option>Leone</option>
<option>Vergine</option>
<option>Bilancia</option>
<option>Scorpione</option>
<option>Sagittario</option>
<option>Capricorno</option>
<option>Acquario</option>
<option>Pesci</option>
</select> </select>
</div> </div>
<br /> <br />
@@ -123,9 +156,9 @@
document document
.getElementById("selezioneCostellazione") .getElementById("selezioneCostellazione")
.addEventListener("input", function () { .addEventListener("input", function () {
document.body.style = `background-image: url("img/${ document.body.style = `background: url("img/${
document.getElementById("selezioneCostellazione").value document.getElementById("selezioneCostellazione").value
}.png"); background-repeat: no-repeat; background-size: cover`; }.png") center no-repeat #071828`;
}); });
document.getElementById("testo").addEventListener("input", coloreTesto); document.getElementById("testo").addEventListener("input", coloreTesto);
@@ -137,55 +170,136 @@
document.getElementById("bordi").addEventListener("input", coloreBordi); document.getElementById("bordi").addEventListener("input", coloreBordi);
function coloreBordi(event) { function coloreBordi(event) {
document.querySelectorAll( document.querySelectorAll(".griglia > div").forEach((div) => {
".griglia > div" div.style.border = `2px solid ${event.target.value}`;
).forEach((div) => {
div.style.border = `2px solid ${event.target.value}`
}); });
} }
async function Oroscopo() { async function Oroscopo() {
//frasiCaricamento(); //frasiCaricamento();
//statistiche();
document.getElementById("output").innerHTML = ""; document.getElementById("output").innerHTML = "";
const domani = new Date(Date.now() + 86400000); // 86400000 ms = 1 giorno document.getElementById("bottone").innerHTML =
const url = "http://127.0.0.1:11434/api/generate"; // Endpoint del server "Chiedi il tuo pronostico";
const data = { if (Segni()) {
model: "llama3.2-vision", if (!(document.getElementById("nome").value === "")) {
prompt: `Dimmi l'oroscopo per una persona di nome ${ const domani = new Date(Date.now() + 86400000); // 86400000 ms = 1 giorno
document.getElementById("nome").value const url = "http://127.0.0.1:11434/api/generate"; // Endpoint del server
}, di segno ${document.getElementById("segno").value} per il giorno ${ const data = {
domani.toISOString().split("T")[0] model: "llama3.2-vision",
}, prevedendo fortuna, amore, finanza e salute`, prompt: `Dimmi l'oroscopo per una persona di nome ${
stream: false, document.getElementById("nome").value
}; }, di segno ${
document.getElementById("segno").value
} per il giorno ${
domani.toISOString().split("T")[0]
}, prevedendo fortuna, amore, finanza e salute`,
stream: false,
};
try { try {
const response = await fetch(url, { const response = await fetch(url, {
method: "POST", method: "POST",
headers: { headers: {
"Content-Type": "application/json", "Content-Type": "application/json",
}, },
body: JSON.stringify(data), body: JSON.stringify(data),
}); });
if (!response.ok) throw new Error(`Errore HTTP: ${response.status}`); if (!response.ok)
throw new Error(`Errore HTTP: ${response.status}`);
const result = await response.text(); const result = await response.text();
document.getElementById("output").innerHTML = marked.parse( document.getElementById("output").innerHTML = marked.parse(
result result
.substring( .substring(
result.indexOf('response":"') + 11, result.indexOf('response":"') + 11,
result.indexOf(',"done') - 1 result.indexOf(',"done') - 1
) )
.replace(/\\n/g, "<br>") .replace(/\\n/g, "<br>")
.replace(/\\/g, "") .replace(/\\/g, "")
); );
} catch (error) { document.getElementById("bottone").innerHTML =
console.error("Errore nella richiesta:", error); "Chiedi un altro pronostico";
} catch (error) {
console.error("Errore nella richiesta:", error);
}
} else {
alert("Inserire il proprio nome");
}
} }
} }
const segniZodiacali = [
"ariete",
"toro",
"gemelli",
"cancro",
"leone",
"vergine",
"bilancia",
"scorpione",
"sagittario",
"capricorno",
"acquario",
"pesci",
];
// Oggetto per gestire i contatori
let contatori = {};
// Recupera i valori dal localStorage oppure inizializza a 0
segniZodiacali.forEach((segno) => {
contatori[segno] = localStorage.getItem(segno)
? parseInt(localStorage.getItem(segno))
: 0;
});
// totale utenti
let countTotale = localStorage.getItem("countTotale")
? parseInt(localStorage.getItem("countTotale"))
: 0;
// Aggiorna i testi iniziali nella UI
document.getElementById("conteggio").innerHTML = countTotale;
segniZodiacali.forEach((segno) => {
const elem = document.getElementById(`conteggio${capitalize(segno)}`);
if (elem) elem.innerHTML = contatori[segno];
});
// Funzione per gestire il conteggio
function Segni() {
const segno = document.getElementById("segno").value.toLowerCase();
if (segniZodiacali.includes(segno)) {
Conteggio(segno);
return true;
} else {
alert("Il segno inserito non è valido");
return false;
}
}
// Funzione per incrementare il conteggio e salvare i dati
function Conteggio(segno) {
contatori[segno]++; // Incrementa il conteggio del segno
countTotale++; // Incrementa il conteggio totale
// Salva in localStorage
localStorage.setItem(segno, contatori[segno]);
localStorage.setItem("countTotale", countTotale);
// Aggiorna la UI
document.getElementById(`conteggio${capitalize(segno)}`).innerHTML =
contatori[segno];
document.getElementById("conteggio").innerHTML = countTotale;
}
// Funzione per capitalizzare la prima lettera (es: "ariete" → "Ariete")
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
</script> </script>
</body> </body>
</html> </html>

View File

@@ -33,6 +33,8 @@
grid-area: 2 / 2 / 6 / 3; grid-area: 2 / 2 / 6 / 3;
border: 2px solid green; border: 2px solid green;
overflow-y: scroll; overflow-y: scroll;
line-height: 1.5em; /* altezza di una riga */
height: calc((1.5em * 24) + (1.5em / 2)); /* 24 righe */
} }
.desc { .desc {
@@ -53,6 +55,11 @@
#color{ #color{
display: inline; display: inline;
} }
#costellazione{ #costellazione{
display: none; display: none;
} }
.tabellaColonna2{
padding-left: 40px;
}