From 1bcf7ff3b4e458b68a0e29e97d8c419a859f49ad Mon Sep 17 00:00:00 2001
From: Kingly Shade <150642678+KinglyShade@users.noreply.github.com>
Date: Wed, 15 Nov 2023 20:43:41 -0700
Subject: [PATCH 01/18] Create index.html
---
index.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
create mode 100644 index.html
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..3e81bb6
--- /dev/null
+++ b/index.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+ KFS Cargando
+
+
+
+
+
+

+
Kingly Fenix Studios
+
+
+
+
\ No newline at end of file
From b46bf9dd07057d425534447a5a4a662e6065c8e2 Mon Sep 17 00:00:00 2001
From: Kingly Shade <150642678+KinglyShade@users.noreply.github.com>
Date: Wed, 15 Nov 2023 20:45:55 -0700
Subject: [PATCH 02/18] Update index.html
---
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/index.html b/index.html
index 3e81bb6..fff9788 100644
--- a/index.html
+++ b/index.html
@@ -65,7 +65,7 @@
From 60fab52a22e50232eebd0bd2e41fdb388af00453 Mon Sep 17 00:00:00 2001
From: Kingly Shade <150642678+KinglyShade@users.noreply.github.com>
Date: Wed, 15 Nov 2023 21:13:26 -0700
Subject: [PATCH 04/18] Update tst.js
---
js/tst.js | 47 +++++++++++++++++++++++++++++------------------
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/js/tst.js b/js/tst.js
index fb5864b..29b54da 100644
--- a/js/tst.js
+++ b/js/tst.js
@@ -9,13 +9,19 @@ class PLB {
this.saludos = ['hola', 'saludos', 'buenos días', 'buenas tardes', 'buenas noches', '¿cómo estás?', 'hey'];
this.slr = ['Ah, hola...', 'Saludos...', 'Hola... supongo', 'No me molestes...', 'Estoy aquí, supongo...', 'No esperes que hable mucho...'];
this.cnf = ['¿Qué se supone que debo decir?', 'Confuso..', 'Hmmm...¿qué?', 'No entiendo..', 'Explícate mejor...', 'No me hagas perder mi tiempo'];
-
- // Nuevas respuestas y frases
+ this.expresionesTimidas = ['No sé...', 'No suelo hablar mucho...', '¿Por qué me preguntas a mí?', 'No es de mi interés...'];
+ this.expresionesFrias = ['No me importa...', 'No tengo emociones...', 'Habla de algo más interesante...', '¿Por qué debería preocuparme?'];
this.respuestasPositivas = ['Interesante...', 'Hmm... sigue hablando.', 'Nunca lo hubiera pensado.', 'Continúa...', '¿Y eso qué tiene de especial?'];
this.expresionesSorprendidas = ['Vaya...', 'Inesperado...', 'Nunca lo imaginé...', '¿En serio?', 'Eso es nuevo.'];
this.expresionesDesinteresadas = ['No me interesa...', 'No veo por qué debería importarme.', 'Aburrido...', '¿Y eso a mí qué?', 'Irrelevante...'];
this.expresionesConfundidas = ['No logro entender...', '¿Estás seguro de lo que dices?', 'Me dejas perplejo...', 'No cuadra...', '¿En qué mundo vives?'];
-
+ this.respuestasNombre = [
+ "No tengo nombre...",
+ "¿Por qué debería tener un nombre?",
+ "Los nombres son irrelevantes para mí...",
+ "Puedes llamarme Kingly Shade, si eso te complace...",
+ "No veo la necesidad de tener un nombre...",
+ ];
this.internetSearchAPI = {
search: async (query) => {
return await this.internetSearch(query);
@@ -87,6 +93,14 @@ class PLB {
async esSaludo(palabra) {
return this.saludos.includes(palabra.toLowerCase());
}
+ async preguntan(p){
+ const patron = /nombre.*cual.*tu|nombre.*tu.*cual|cual.*nombre.*tu|cual.*tu.*nombre|tu.*nombre.*cual|tu.*cual.*nombre/;
+ if (patron.test(p)) {
+ const rdm = Math.floor(Math.random() * this.respuestasNombre.length + 1)
+ return this.respuestasNombre[rdm]
+
+ }
+ }
async internetSearch(query) {
try {
@@ -105,17 +119,22 @@ class PLB {
async tomarDecision(texto) {
const saludoEncontrado = await this.esSaludo(texto);
-
+
if (saludoEncontrado) {
const rnd = Math.floor(Math.random() * this.slr.length);
return this.slr[rnd];
}
-
+
const respuestaEnBaseDeDatos = await this.buscarEnBaseDeDatos(texto);
if (respuestaEnBaseDeDatos) {
return respuestaEnBaseDeDatos;
}
-
+
+ const pn = await this.preguntan(texto);
+ if (pn) {
+ return pn;
+ }
+
if (texto.includes('gracias')) {
return 'De nada... supongo.';
} else if (texto.includes('interesante') || texto.includes('curioso')) {
@@ -131,19 +150,11 @@ class PLB {
const rnd = Math.floor(Math.random() * this.expresionesConfundidas.length);
return this.expresionesConfundidas[rnd];
} else {
- // Respuesta por defecto con búsqueda en Internet
- const rdm = Math.floor(Math.random() * this.cnf.length);
- const randomResponse = this.cnf[rdm];
-
- const internetResult = await this.internetSearch(texto);
-
- if (internetResult.includes('error')) {
- return `No me molestes con problemas técnicos. ${this.expresionesTimidas[Math.floor(Math.random() * this.expresionesTimidas.length)]}`;
- } else {
- return `${randomResponse} ${this.expresionesFrias[Math.floor(Math.random() * this.expresionesFrias.length)]} ${internetResult}`;
- }
+ await this.guardarEnBaseDeDatos(texto, 'No tengo respuesta en este momento.');
+ return `No tengo respuesta en este momento. ${this.expresionesTimidas[Math.floor(Math.random() * this.expresionesTimidas.length)]}`;
}
}
-}
+ }
+
export default PLB;
From bdeb845f9de04f88e59ceb98d070dc61da51b011 Mon Sep 17 00:00:00 2001
From: Kingly Shade <150642678+KinglyShade@users.noreply.github.com>
Date: Wed, 15 Nov 2023 21:19:57 -0700
Subject: [PATCH 05/18] add more fuctions
---
admin/index.html | 18 +++++++++++++
admin/index.js | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
admin/style.css | 21 +++++++++++++++
js/tst.js | 1 +
4 files changed, 109 insertions(+)
create mode 100644 admin/index.html
create mode 100644 admin/index.js
create mode 100644 admin/style.css
diff --git a/admin/index.html b/admin/index.html
new file mode 100644
index 0000000..5308193
--- /dev/null
+++ b/admin/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+ Segunda Página
+
+
+
+
+
+
+
+
+
diff --git a/admin/index.js b/admin/index.js
new file mode 100644
index 0000000..a95e626
--- /dev/null
+++ b/admin/index.js
@@ -0,0 +1,69 @@
+// Importa la clase PLB
+import PLB from './ruta-a-tu-archivo-de-plb';
+
+// Crea una instancia de la clase PLB
+const plbInstance = new PLB();
+
+// Función para cargar y mostrar todas las preguntas sin respuesta
+async function mostrarPreguntasSinRespuesta() {
+ const preguntasSinRespuesta = await obtenerPreguntasSinRespuesta();
+
+ // Muestra las preguntas en la página
+ mostrarListaDePreguntas(preguntasSinRespuesta);
+}
+
+// Función para obtener todas las preguntas sin respuesta de la base de datos
+async function obtenerPreguntasSinRespuesta() {
+ const transaction = plbInstance.db.transaction(['responses'], 'readonly');
+ const objectStore = transaction.objectStore('responses');
+ const todasLasPreguntas = await objectStore.getAllKeys();
+
+ const preguntasSinRespuesta = await Promise.all(todasLasPreguntas.map(async (pregunta) => {
+ const respuesta = await plbInstance.buscarEnBaseDeDatos(pregunta);
+ return { pregunta, respuesta };
+ }));
+
+ // Filtra solo las preguntas sin respuesta
+ return preguntasSinRespuesta.filter(item => !item.respuesta);
+}
+
+// Función para mostrar una lista de preguntas en la página
+function mostrarListaDePreguntas(preguntas) {
+ const listaPreguntasContainer = document.getElementById('lista-preguntas-container');
+
+ if (preguntas.length > 0) {
+ listaPreguntasContainer.innerHTML = 'Preguntas sin Respuesta:
';
+
+ const listaPreguntas = document.getElementById('lista-preguntas');
+
+ preguntas.forEach(item => {
+ const listItem = document.createElement('li');
+ listItem.textContent = item.pregunta;
+
+ const inputRespuesta = document.createElement('input');
+ inputRespuesta.type = 'text';
+ inputRespuesta.placeholder = 'Ingrese la respuesta...';
+
+ const btnAsignarRespuesta = document.createElement('button');
+ btnAsignarRespuesta.textContent = 'Asignar Respuesta';
+ btnAsignarRespuesta.onclick = async () => {
+ await asignarRespuesta(item.pregunta, inputRespuesta.value);
+ mostrarPreguntasSinRespuesta();
+ };
+
+ listItem.appendChild(inputRespuesta);
+ listItem.appendChild(btnAsignarRespuesta);
+ listaPreguntas.appendChild(listItem);
+ });
+ } else {
+ listaPreguntasContainer.innerHTML = 'No hay preguntas sin respuesta en la base de datos.
';
+ }
+}
+
+// Función para asignar una respuesta a una pregunta en la base de datos
+async function asignarRespuesta(pregunta, respuesta) {
+ await plbInstance.guardarEnBaseDeDatos(pregunta, respuesta);
+}
+
+// Llama a la función para mostrar todas las preguntas sin respuesta al cargar la página
+mostrarPreguntasSinRespuesta();
diff --git a/admin/style.css b/admin/style.css
new file mode 100644
index 0000000..bf8087e
--- /dev/null
+++ b/admin/style.css
@@ -0,0 +1,21 @@
+body {
+ font-family: Arial, sans-serif;
+ margin: 0;
+ padding: 0;
+ background-color: #f4f4f4;
+}
+
+.container {
+ max-width: 800px;
+ margin: 50px auto;
+ padding: 20px;
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+}
+
+button {
+ padding: 10px 15px;
+ font-size: 16px;
+ cursor: pointer;
+}
diff --git a/js/tst.js b/js/tst.js
index 29b54da..81165d7 100644
--- a/js/tst.js
+++ b/js/tst.js
@@ -150,6 +150,7 @@ class PLB {
const rnd = Math.floor(Math.random() * this.expresionesConfundidas.length);
return this.expresionesConfundidas[rnd];
} else {
+ // Guardar en la base de datos cuando no hay respuesta
await this.guardarEnBaseDeDatos(texto, 'No tengo respuesta en este momento.');
return `No tengo respuesta en este momento. ${this.expresionesTimidas[Math.floor(Math.random() * this.expresionesTimidas.length)]}`;
}
From 2cf90e4e8787105962546bddde77d3694f62db74 Mon Sep 17 00:00:00 2001
From: Kingly Shade <150642678+KinglyShade@users.noreply.github.com>
Date: Wed, 15 Nov 2023 22:10:58 -0700
Subject: [PATCH 06/18] fix bugs and add ia personaliti
---
admin/index.html | 6 ++---
admin/index.js | 2 +-
ayuda/script.js | 4 +++
js/tst.js | 63 ++++++++++++++++++++++++------------------------
4 files changed, 39 insertions(+), 36 deletions(-)
diff --git a/admin/index.html b/admin/index.html
index 5308193..18fa130 100644
--- a/admin/index.html
+++ b/admin/index.html
@@ -4,7 +4,7 @@
Segunda Página
-
+
@@ -12,7 +12,7 @@
Segunda Página
-
-
+
+