125 lines
4.0 KiB
JavaScript
125 lines
4.0 KiB
JavaScript
"use strict";
|
|
|
|
/**
|
|
* @class LaConstitucionEs
|
|
* @constructor
|
|
* @returns {void}
|
|
* @access public
|
|
* @static
|
|
*/
|
|
const LaConstitucionEs = (function () {
|
|
|
|
/**
|
|
* @constructs LaConstitucionEs
|
|
* @returns {void}
|
|
* @access private
|
|
* @static
|
|
*/
|
|
const LaConstitucionEs = function () { };
|
|
|
|
/** @type {Array.<Object.<string, string|Object.<string, string|Array.<string>>>>} */
|
|
LaConstitucionEs.DATA = [];
|
|
|
|
/**
|
|
* @returns {void}
|
|
* @access public
|
|
* @static
|
|
*/
|
|
LaConstitucionEs.reject_cookies = () => {
|
|
if (document.querySelector(".fc-dialog-container")) {
|
|
document.querySelectorAll(".fc-dialog-container [type=checkbox]").forEach(checkbox => {
|
|
checkbox.checked = false;
|
|
});
|
|
document.querySelector(".fc-dialog-container button.fc-manage-vendors").click();
|
|
document.querySelectorAll(".fc-dialog-container [type=checkbox]:checked").forEach(checkbox => {
|
|
checkbox.checked = false;
|
|
});
|
|
document.querySelector(".fc-dialog-container button.fc-confirm-choices").click();
|
|
};
|
|
};
|
|
|
|
/**
|
|
* @param {HTMLElement} item
|
|
* @returns {string}
|
|
* @access public
|
|
* @static
|
|
*/
|
|
LaConstitucionEs.get_answer_text = item => {
|
|
|
|
while ((item = item.parentNode).tagName.toLowerCase() != "li");
|
|
|
|
return item.querySelector(".respuesta_txt").innerText.trim();
|
|
};
|
|
|
|
/**
|
|
* @returns {void}
|
|
* @access public
|
|
* @static
|
|
*/
|
|
LaConstitucionEs.get_test_data = () => {
|
|
|
|
/** @type {HTMLDivElement} */
|
|
const base = document.querySelector(".panel-primary");
|
|
|
|
if (base) {
|
|
|
|
/** @type {Object.<string, string|Object.<string, string|Array.<string>>>} */
|
|
const data = {
|
|
/** @type {string} */
|
|
origin : "laConstitucion.es",
|
|
/** @type {string} */
|
|
sources : [window.location.href],
|
|
/** @type {string} */
|
|
title: base.querySelector(".panel-heading h1").innerText,
|
|
/** @type {Array.<Object.<string, string|Array.<string>>>} */
|
|
queries: [...base.querySelectorAll(".panel-body>ul")].map(query => ({
|
|
/** @type {string} */
|
|
question: query.querySelector("b").innerText.trim(),
|
|
/** @type {Array.<string>} */
|
|
rights: [...query.querySelectorAll("li .correcta")].map(LaConstitucionEs.get_answer_text),
|
|
/** @type {Array.<string>} */
|
|
wrongs: [...query.querySelectorAll("li .erronea")].map(LaConstitucionEs.get_answer_text)
|
|
}))
|
|
};
|
|
/** @type {number} */
|
|
let i;
|
|
|
|
if (LaConstitucionEs.DATA.some((item, j) => {
|
|
if (item.title == data.title) {
|
|
i = j;
|
|
return true;
|
|
};
|
|
return false;
|
|
})) {
|
|
data.queries.forEach(query => {
|
|
|
|
/** @type {number} */
|
|
let j;
|
|
|
|
if (LaConstitucionEs.DATA[i].queries.some((item, k) => {
|
|
if (item.question == query.question) {
|
|
j = k;
|
|
return true;
|
|
};
|
|
return false;
|
|
}))
|
|
["rights", "wrongs"].forEach(type => {
|
|
LaConstitucionEs.DATA[i].queries[j][type].push(...query[type].filter(answer => !LaConstitucionEs.DATA[i].queries[j][type].includes(answer)));
|
|
});
|
|
else
|
|
LaConstitucionEs.DATA[i].queries.push(query);
|
|
});
|
|
} else
|
|
LaConstitucionEs.DATA.push(data);
|
|
|
|
console.log(JSON.stringify(LaConstitucionEs.DATA));
|
|
|
|
};
|
|
|
|
};
|
|
|
|
return LaConstitucionEs;
|
|
})();
|
|
|
|
LaConstitucionEs.reject_cookies();
|
|
LaConstitucionEs.get_test_data(); |