Skip to content

Commit

Permalink
Merge branch 'PruebaConjunto'
Browse files Browse the repository at this point in the history
  • Loading branch information
lauracc97 committed Mar 26, 2024
2 parents 7f6a31c + 0f2bbdf commit 2709a99
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 61 deletions.
114 changes: 81 additions & 33 deletions questions/template-questions/question-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,52 @@ const Wikidata = require('./wikidata-query');
const app = express();
const port = 8004;

const jsonPreg={
text:'¿Cuál es la capital de',
queryCorrect:'SELECT ?countryLabel ?capitalLabel WHERE {' +
'?country wdt:P31 wd:Q6256. ?country wdt:P36 ?capital. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es".}}',
queryIncorrect:'SELECT ?capitalLabel WHERE { ?capital wdt:P31 wd:Q5119. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }}'
};
const jsonPreg=[
{
textStart:'¿Cuál es la capital de ',
textEnd:'?',
queryCorrect:'SELECT ?preguntaLabel ?respuestaLabel WHERE {' +
'?pregunta wdt:P31 wd:Q6256. ?pregunta wdt:P36 ?respuesta. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es".}}'
},
{
textStart:'¿Quién es el director de la película ',
textEnd:'?',
queryCorrect:'SELECT DISTINCT ?preguntaLabel ?respuestaLabel WHERE {'+
'?pregunta wdt:P31 wd:Q11424.'+
'?pregunta wdt:P57 ?respuesta.'+
'SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }'+
'} LIMIT 100'
},
{
textStart:'¿Quién es el autor del libro ',
textEnd:'?',
queryCorrect:'SELECT ?preguntaLabel ?respuestaLabel WHERE {'+
'?pregunta wdt:P31 wd:Q7725634.'+
'?pregunta wdt:P50 ?respuesta.'+
'SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }'+
'} LIMIT 100'
},
{
textStart:'¿Quién es el cantante de ',
textEnd:'?',
queryCorrect:'SELECT ?preguntaLabel ?respuestaLabel WHERE {'+
'?pregunta wdt:P31 wd:Q134556.'+
'?pregunta wdt:P175 ?respuesta.'+
'SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }'+
'} LIMIT 100'
},
{
textStart:'¿Dónde se encuentra el monumento ',
textEnd:'?',
queryCorrect:'SELECT ?preguntaLabel ?respuestaLabel WHERE {'+
'?pregunta wdt:P31 wd:Q570116.'+
'?pregunta wdt:P17 ?respuesta.'+
'SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }'+
'} LIMIT 100'
}

]
;

//const json = JSON.parse(jsonPreg);

Expand All @@ -23,40 +63,48 @@ app.use(bodyParser.json());
app.post("/questions", async (req, res) => {
try {
let resultadosGuardados;
console.log("entra post random questions");
wiki.ejecutarConsultaSPARQL(jsonPreg.queryCorrect)

//Escoge un valor aleatorio para escoger la pregunta
let sizeJson = jsonPreg.length;
let randQuery= Math.floor(Math.random() * sizeJson);

wiki.ejecutarConsultaSPARQL(jsonPreg[randQuery].queryCorrect)
.then((resultados) => {
//Escoge un valor aleatorio de la consulta para la respuesta correcta
let size = resultados.results.bindings.length;
let random = Math.floor(Math.random() * size);
let randoms = [];
while (randoms.length < 3) {
let numero = Math.floor(Math.random() * size);
if (!randoms.includes(numero) && numero!=random) {
randoms.push(numero);
}
}
resultadosGuardados = {
pregunta: jsonPreg.text + ' ' +resultados.results.bindings[random].countryLabel.value + '?',
correcta: resultados.results.bindings[random].capitalLabel.value,
incorrectas: [
resultados.results.bindings[randoms[0]].capitalLabel.value,
resultados.results.bindings[randoms[1]].capitalLabel.value,
resultados.results.bindings[randoms[2]].capitalLabel.value
]
}

//Valor aleatorio para las respuestas incorrectas
let randoms = [];
while (randoms.length < 3) {
let numero = Math.floor(Math.random() * size);
if (!randoms.includes(numero) && numero!=random) {
randoms.push(numero);
}
}
//Json generado para enviar al post
resultadosGuardados = {
pregunta: jsonPreg[randQuery].textStart + resultados.results.bindings[random].preguntaLabel.value + jsonPreg[randQuery].textEnd,
correcta: resultados.results.bindings[random].respuestaLabel.value,
incorrectas: [
resultados.results.bindings[randoms[0]].respuestaLabel.value,
resultados.results.bindings[randoms[1]].respuestaLabel.value,
resultados.results.bindings[randoms[2]].respuestaLabel.value
]
}

console.log(resultadosGuardados.incorrectas);
console.log(resultados.results.bindings[randoms[0]].capitalLabel.value);
console.log(resultados.results.bindings[randoms[1]].capitalLabel.value);
console.log(resultados.results.bindings[randoms[2]].capitalLabel.value);
// console.log(resultadosGuardados.incorrectas);
// console.log(resultados.results.bindings[randoms[0]].capitalLabel.value);
// console.log(resultados.results.bindings[randoms[1]].capitalLabel.value);
// console.log(resultados.results.bindings[randoms[2]].capitalLabel.value);

res.send(resultadosGuardados);
})
.catch((error) => {
console.error('Error al ejecutar la consulta:', error);
});
})
.catch((error) => {
console.error('Error al ejecutar la consulta:', error);
});

} catch (error) {
} catch (error) { //Catch del try
console.error("Error:", error); // Maneja el error
res.status(500).send(error); // Envía una respuesta de error al cliente
}
Expand Down
26 changes: 2 additions & 24 deletions questions/template-questions/wikidata-query.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@

class Wikidata {


class Wikidata {
async ejecutarConsultaSPARQL(query) {
try {
const axios = require('axios');
Expand Down Expand Up @@ -32,24 +30,4 @@ class Wikidata {
}
}

module.exports = Wikidata;

/* const random = Math.floor(Math.random() * 100)
const endpointUrl = 'https://query.wikidata.org/sparql';
const sparqlQuery = `
SELECT ?filmLabel ?directorLabel WHERE {
?film wdt:P31 wd:Q11424;
wdt:P57 ?director.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". }
}
LIMIT 100
`;
const queryDispatcher = new SPARQLQueryDispatcher( endpointUrl );
const query= queryDispatcher.query( sparqlQuery ).then( function (value) {
console.log(value.results.bindings[random]); // Success!
},
function (reason) {
console.log(reason); // Error!
},
); */
module.exports = Wikidata;
7 changes: 3 additions & 4 deletions webapp/src/components/Game.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,9 @@ const Game = () => {
};


// useEffect(() => {
// console.log('El componente se ha montado');
// addPregunta().then(console.log("hi" + pregunta) );
// }, [])
useEffect(() => {
addPregunta();
}, [])

return (
<StyledContainer>
Expand Down

0 comments on commit 2709a99

Please sign in to comment.