mirror of
https://gitlab.com/MrFry/moodle-test-userscript
synced 2025-04-01 20:22:48 +02:00
Results parsing improvements, and code folding, rearranging
This commit is contained in:
parent
702a5d90fa
commit
6143cecc30
1 changed files with 205 additions and 199 deletions
404
main.js
404
main.js
|
@ -1,3 +1,4 @@
|
||||||
|
// vim:foldmethod=marker
|
||||||
/* ----------------------------------------------------------------------------
|
/* ----------------------------------------------------------------------------
|
||||||
|
|
||||||
Online Moodle/Elearning/KMOOC test help
|
Online Moodle/Elearning/KMOOC test help
|
||||||
|
@ -21,13 +22,13 @@
|
||||||
|
|
||||||
var data; // all data, which is in the resource txt
|
var data; // all data, which is in the resource txt
|
||||||
var addEventListener; // add event listener function
|
var addEventListener; // add event listener function
|
||||||
var lastChangeLog = '- Csak egy plusz weboldal gomb a menüben.';
|
var lastChangeLog = '- Csak egy plusz weboldal gomb a menüben.'; // TODO
|
||||||
var serverAdress = "http://questionmining.tk/";
|
var serverAdress = "http://questionmining.tk/";
|
||||||
|
|
||||||
// forcing pages for testing. unless you test, do not set these to true!
|
// forcing pages for testing. unless you test, do not set these to true!
|
||||||
// only one of these should be true for testing
|
// only one of these should be true for testing
|
||||||
const forceTestPage = true; // TODO
|
const forceTestPage = false;
|
||||||
const forceResultPage = false;
|
const forceResultPage = true;
|
||||||
const forceDefaultPage = false;
|
const forceDefaultPage = false;
|
||||||
const logElementGetting = false;
|
const logElementGetting = false;
|
||||||
|
|
||||||
|
@ -35,10 +36,8 @@ var motdShowCount = 3;
|
||||||
var motd = "";
|
var motd = "";
|
||||||
|
|
||||||
var minMatchAmmount = 50;
|
var minMatchAmmount = 50;
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
// Class descriptions
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
//: Class descriptions {{{
|
||||||
class Question {
|
class Question {
|
||||||
constructor(q, a, i) {
|
constructor(q, a, i) {
|
||||||
this.Q = q;
|
this.Q = q;
|
||||||
|
@ -220,10 +219,9 @@ class QuestionDB {
|
||||||
return r.join("\n\n");
|
return r.join("\n\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//: }}}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
//: Main function {{{
|
||||||
// Main function
|
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
function Main() {
|
function Main() {
|
||||||
'use strict';
|
'use strict';
|
||||||
console.clear();
|
console.clear();
|
||||||
|
@ -257,11 +255,11 @@ function Main() {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------------------------------
|
//: }}}
|
||||||
// DOM getting stuff
|
|
||||||
|
//: DOM getting stuff {{{
|
||||||
// all dom getting stuff are in this sections, so on
|
// all dom getting stuff are in this sections, so on
|
||||||
// moodle dom change, stuff breaks here
|
// moodle dom change, stuff breaks here
|
||||||
// ---------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function GetAllQuestionsDropdown() {
|
function GetAllQuestionsDropdown() {
|
||||||
if (logElementGetting)
|
if (logElementGetting)
|
||||||
|
@ -287,12 +285,25 @@ function GetFormulationClearfix() {
|
||||||
return document.getElementsByClassName("formulation clearfix");
|
return document.getElementsByClassName("formulation clearfix");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function GetAnswerOptions() {
|
||||||
|
// TODO
|
||||||
|
if (logElementGetting)
|
||||||
|
console.log("getting all answer options");
|
||||||
|
return GetFormulationClearfix()[0].childNodes[3].innerText;
|
||||||
|
}
|
||||||
|
|
||||||
function GetQuestionImages() {
|
function GetQuestionImages() {
|
||||||
if (logElementGetting)
|
if (logElementGetting)
|
||||||
console.log("getting question images");
|
console.log("getting question images");
|
||||||
return GetFormulationClearfix()[0].getElementsByTagName("img");
|
return GetFormulationClearfix()[0].getElementsByTagName("img");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function GetCurrentSubjectName() {
|
||||||
|
if (logElementGetting)
|
||||||
|
console.log("getting current subjects name");
|
||||||
|
return document.getElementById("page-header").innerText.split("\n")[0];
|
||||||
|
}
|
||||||
|
|
||||||
function GetVideo() {
|
function GetVideo() {
|
||||||
if (logElementGetting)
|
if (logElementGetting)
|
||||||
console.log("getting video stuff");
|
console.log("getting video stuff");
|
||||||
|
@ -610,10 +621,12 @@ function GetRightAnswerFromResultv2(i) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//: }}}
|
||||||
|
|
||||||
|
//: Main logic stuff {{{
|
||||||
|
|
||||||
|
//: Loading {{{
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
|
||||||
// Interface stuff
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
|
||||||
function Init(cwith) {
|
function Init(cwith) {
|
||||||
if (false) // reset, only for testing!
|
if (false) // reset, only for testing!
|
||||||
{
|
{
|
||||||
|
@ -677,160 +690,6 @@ function Init(cwith) {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
function PrepareAnswers(result, j) {
|
|
||||||
if (result.length > 0) // if there are more than zero results
|
|
||||||
{
|
|
||||||
var allMessages = []; // preparing all messages
|
|
||||||
for (var k = 0; k < result.length; k++) // going throuh all results
|
|
||||||
{
|
|
||||||
var msg = ""; // the current message
|
|
||||||
if ((GM_getValue("showQuestions") == undefined) || GM_getValue("showQuestions")) // if the question should be shown
|
|
||||||
{
|
|
||||||
msg += result[k].q.Q + "\n"; // adding the question if yes
|
|
||||||
}
|
|
||||||
msg += result[k].q.A.replace(/, /g, "\n"); // adding answer
|
|
||||||
if (result[k].q.HasImage()) // and adding image, if it exists
|
|
||||||
{
|
|
||||||
msg += "\n" + result[k].q.I; // if it has image part, adding that too
|
|
||||||
}
|
|
||||||
allMessages.push({
|
|
||||||
m: msg,
|
|
||||||
p: result[k].match
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return allMessages;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function ShowAnswers(answers) {
|
|
||||||
if (answers.length > 0) { // if there are more than 0 answer
|
|
||||||
ShowMessage(answers);
|
|
||||||
} else {
|
|
||||||
ShowMessage({
|
|
||||||
m: "Nincs találat :( TXT-ben szerepelhet a képnév/kérdés részlet, ha rákeresel! Illetve előfordulhat, hogy a tárgyat nem válsztottad ki a menüben.",
|
|
||||||
isSimple: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function HandleQuiz(url, count) {
|
|
||||||
var q = GetQuestionFromTest();
|
|
||||||
var questions = q.q;
|
|
||||||
var allQuestions = q.allQ;
|
|
||||||
var imgNodes = q.imgnodes;
|
|
||||||
// ------------------------------------------------------------------------------------------------------
|
|
||||||
var answers = [];
|
|
||||||
for (var j = 0; j < questions.length; j++) // going thru all answers
|
|
||||||
{
|
|
||||||
var question = RemoveUnnecesarySpaces(questions[j]); // simplifying question
|
|
||||||
var result = data.Search(question, SimplifyImages(imgNodes));
|
|
||||||
answers.push(PrepareAnswers(result, j));
|
|
||||||
HighLightAnswer(result, j); // highlights the answer for the current result
|
|
||||||
}
|
|
||||||
ShowAnswers(answers);
|
|
||||||
}
|
|
||||||
|
|
||||||
function HandleUI(url, count) {
|
|
||||||
var newVersion = false; // if the script is newer than last start
|
|
||||||
var loaded = count != -1; // if script could load stuff
|
|
||||||
|
|
||||||
try // try, cus im suspicious
|
|
||||||
{
|
|
||||||
newVersion = GM_info.script.version !== GM_getValue("lastVerson");
|
|
||||||
} catch (e) {}
|
|
||||||
var greetMsg = ""; // message to show at the end
|
|
||||||
var timeout = null; // the timeout. if null, it wont be hidden
|
|
||||||
// no new version, nothing loaded
|
|
||||||
if (!newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
|
||||||
{
|
|
||||||
greetMsg =
|
|
||||||
"Hiba a @resource tagnál, vagy a fileval van gond! (Lehet át lett helyezve, vagy üres.) Ellenőrizd az elérési utat, vagy hogy a Tampermonkey bővítmény eléri-e a fájlokat. Ha netes forrást használsz, akkor nem elérhető a szerver! Segítségért kattints!";
|
|
||||||
}
|
|
||||||
var showSplash = (GM_getValue("showSplash") == undefined) || GM_getValue("showSplash"); // getting value, if splash screen should be shown. Its true, if its undefined, or true
|
|
||||||
// no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it
|
|
||||||
if (!newVersion && loaded && showSplash) // ------------------------------------------------------------------------------------------------
|
|
||||||
{
|
|
||||||
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
|
||||||
" kérdés és " + data.length + " tárgy betöltve. (click for help).";
|
|
||||||
console.log(data);
|
|
||||||
if (data.length > 0) {
|
|
||||||
var toAdd = [];
|
|
||||||
for (var i = 0; i < data.length; i++) {
|
|
||||||
if (data.GetIfActive(i)) {
|
|
||||||
toAdd.push(data.Subjects[i].Name + " (" + data.Subjects[i].length + ")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (toAdd.length != 0) {
|
|
||||||
greetMsg += "\nAktív tárgyak: " + toAdd.join(", ") + ".";
|
|
||||||
} else {
|
|
||||||
greetMsg += "\nNincs aktív tárgyad. Menüből válassz ki eggyet!";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
greetMsg += " Az adatfájlban nem adtál meg nevet. Vagy nem elérhető a szerver. Katt a helpért!";
|
|
||||||
// TODO if online mode print another error!
|
|
||||||
}
|
|
||||||
timeout = 5;
|
|
||||||
}
|
|
||||||
// new version, nothing loaded
|
|
||||||
if (newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
|
||||||
{
|
|
||||||
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version +
|
|
||||||
". Új verzió!\n Írd át a @resouce tagnál az elírési utat! Kivéve ha üres a file, akkor töltsd fel :) Nincs kérdés betöltve! Segítséghez kattints. Changelog:\n" +
|
|
||||||
lastChangeLog; // showing changelog too
|
|
||||||
}
|
|
||||||
// new version, everything loaded -> set lastVerson to current
|
|
||||||
if (newVersion && loaded) // --------------------------------------------------------------------------------------------------------------
|
|
||||||
{
|
|
||||||
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
|
||||||
" kérdés és " + data.length + " tárgy betöltve. Verzió frissítve " + GM_info.script.version +
|
|
||||||
"-re. Changelog:\n" + lastChangeLog;
|
|
||||||
GM_setValue("lastVerson", GM_info.script.version); // setting lastVersion
|
|
||||||
}
|
|
||||||
console.log("MOTD " + motd);
|
|
||||||
if (!EmptyOrWhiteSpace(motd)) {
|
|
||||||
|
|
||||||
var prevmotd = GM_getValue("motd");
|
|
||||||
if (prevmotd != motd) {
|
|
||||||
greetMsg += "\nMOTD:\n" + motd;
|
|
||||||
timeout = null;
|
|
||||||
GM_setValue("motdcount", motdShowCount);
|
|
||||||
GM_setValue("motd", motd);
|
|
||||||
} else {
|
|
||||||
var motdcount = GM_getValue("motdcount");
|
|
||||||
if (motdcount == undefined) {
|
|
||||||
GM_setValue("motdcount", motdShowCount);
|
|
||||||
motdcount = motdShowCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
motdcount--;
|
|
||||||
if (motdcount > 0) {
|
|
||||||
greetMsg += "\nMOTD:\n" + motd;
|
|
||||||
timeout = null;
|
|
||||||
GM_setValue("motdcount", motdcount);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ShowMessage({
|
|
||||||
m: greetMsg,
|
|
||||||
isSimple: true
|
|
||||||
}, timeout, ShowHelp); // showing message. If "m" is empty it wont show it, thats how showSplash works.
|
|
||||||
}
|
|
||||||
|
|
||||||
function HandleResults(url) {
|
|
||||||
var allResults = [];
|
|
||||||
// TODO fix this
|
|
||||||
if (data)
|
|
||||||
for (var i = 0; i < data.length; i++) // going trough all subjects
|
|
||||||
if (data.GetIfActive(i)) // if the subject is active
|
|
||||||
allResults = allResults.concat(data[i].questions); // searching for the answer, with the given question and image (if there is)
|
|
||||||
SaveQuiz(GetQuiz(), allResults); // saves the quiz questions and answers
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
|
||||||
// Main logic stuff
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function ReadFile(cwith) {
|
function ReadFile(cwith) {
|
||||||
var resource = "";
|
var resource = "";
|
||||||
try {
|
try {
|
||||||
|
@ -942,6 +801,164 @@ function NLoad(resource, cwith) {
|
||||||
cwith(count);
|
cwith(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//: }}}
|
||||||
|
|
||||||
|
//: Answering stuffs {{{
|
||||||
|
|
||||||
|
function HandleQuiz(url, count) {
|
||||||
|
var q = GetQuestionFromTest();
|
||||||
|
var questions = q.q;
|
||||||
|
var allQuestions = q.allQ;
|
||||||
|
var imgNodes = q.imgnodes;
|
||||||
|
// ------------------------------------------------------------------------------------------------------
|
||||||
|
var answers = [];
|
||||||
|
for (var j = 0; j < questions.length; j++) // going thru all answers
|
||||||
|
{
|
||||||
|
var question = RemoveUnnecesarySpaces(questions[j]); // simplifying question
|
||||||
|
var result = data.Search(question, SimplifyImages(imgNodes));
|
||||||
|
answers.push(PrepareAnswers(result, j));
|
||||||
|
HighLightAnswer(result, j); // highlights the answer for the current result
|
||||||
|
}
|
||||||
|
ShowAnswers(answers);
|
||||||
|
}
|
||||||
|
|
||||||
|
function PrepareAnswers(result, j) {
|
||||||
|
if (result.length > 0) // if there are more than zero results
|
||||||
|
{
|
||||||
|
var allMessages = []; // preparing all messages
|
||||||
|
for (var k = 0; k < result.length; k++) // going throuh all results
|
||||||
|
{
|
||||||
|
var msg = ""; // the current message
|
||||||
|
if ((GM_getValue("showQuestions") == undefined) || GM_getValue("showQuestions")) // if the question should be shown
|
||||||
|
{
|
||||||
|
msg += result[k].q.Q + "\n"; // adding the question if yes
|
||||||
|
}
|
||||||
|
msg += result[k].q.A.replace(/, /g, "\n"); // adding answer
|
||||||
|
if (result[k].q.HasImage()) // and adding image, if it exists
|
||||||
|
{
|
||||||
|
msg += "\n" + result[k].q.I; // if it has image part, adding that too
|
||||||
|
}
|
||||||
|
allMessages.push({
|
||||||
|
m: msg,
|
||||||
|
p: result[k].match
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return allMessages;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ShowAnswers(answers) {
|
||||||
|
if (answers.length > 0) { // if there are more than 0 answer
|
||||||
|
ShowMessage(answers);
|
||||||
|
} else {
|
||||||
|
ShowMessage({
|
||||||
|
m: "Nincs találat :( TXT-ben szerepelhet a képnév/kérdés részlet, ha rákeresel! Illetve előfordulhat, hogy a tárgyat nem válsztottad ki a menüben.",
|
||||||
|
isSimple: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function HandleUI(url, count) {
|
||||||
|
var newVersion = false; // if the script is newer than last start
|
||||||
|
var loaded = count != -1; // if script could load stuff
|
||||||
|
|
||||||
|
try // try, cus im suspicious
|
||||||
|
{
|
||||||
|
newVersion = GM_info.script.version !== GM_getValue("lastVerson");
|
||||||
|
} catch (e) {}
|
||||||
|
var greetMsg = ""; // message to show at the end
|
||||||
|
var timeout = null; // the timeout. if null, it wont be hidden
|
||||||
|
// no new version, nothing loaded
|
||||||
|
if (!newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
||||||
|
{
|
||||||
|
greetMsg =
|
||||||
|
"Hiba a @resource tagnál, vagy a fileval van gond! (Lehet át lett helyezve, vagy üres.) Ellenőrizd az elérési utat, vagy hogy a Tampermonkey bővítmény eléri-e a fájlokat. Ha netes forrást használsz, akkor nem elérhető a szerver! Segítségért kattints!";
|
||||||
|
}
|
||||||
|
var showSplash = (GM_getValue("showSplash") == undefined) || GM_getValue("showSplash"); // getting value, if splash screen should be shown. Its true, if its undefined, or true
|
||||||
|
// no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it
|
||||||
|
if (!newVersion && loaded && showSplash) // ------------------------------------------------------------------------------------------------
|
||||||
|
{
|
||||||
|
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
||||||
|
" kérdés és " + data.length + " tárgy betöltve. (click for help).";
|
||||||
|
console.log(data);
|
||||||
|
if (data.length > 0) {
|
||||||
|
var toAdd = [];
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
if (data.GetIfActive(i)) {
|
||||||
|
toAdd.push(data.Subjects[i].Name + " (" + data.Subjects[i].length + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toAdd.length != 0) {
|
||||||
|
greetMsg += "\nAktív tárgyak: " + toAdd.join(", ") + ".";
|
||||||
|
} else {
|
||||||
|
greetMsg += "\nNincs aktív tárgyad. Menüből válassz ki eggyet!";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
greetMsg += " Az adatfájlban nem adtál meg nevet. Vagy nem elérhető a szerver. Katt a helpért!";
|
||||||
|
}
|
||||||
|
timeout = 5;
|
||||||
|
}
|
||||||
|
// new version, nothing loaded
|
||||||
|
if (newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
||||||
|
{
|
||||||
|
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version +
|
||||||
|
". Új verzió!\n Írd át a @resouce tagnál az elírési utat! Kivéve ha üres a file, akkor töltsd fel :) Nincs kérdés betöltve! Segítséghez kattints. Changelog:\n" +
|
||||||
|
lastChangeLog; // showing changelog too
|
||||||
|
}
|
||||||
|
// new version, everything loaded -> set lastVerson to current
|
||||||
|
if (newVersion && loaded) // --------------------------------------------------------------------------------------------------------------
|
||||||
|
{
|
||||||
|
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
||||||
|
" kérdés és " + data.length + " tárgy betöltve. Verzió frissítve " + GM_info.script.version +
|
||||||
|
"-re. Changelog:\n" + lastChangeLog;
|
||||||
|
GM_setValue("lastVerson", GM_info.script.version); // setting lastVersion
|
||||||
|
}
|
||||||
|
console.log("MOTD " + motd);
|
||||||
|
if (!EmptyOrWhiteSpace(motd)) {
|
||||||
|
|
||||||
|
var prevmotd = GM_getValue("motd");
|
||||||
|
if (prevmotd != motd) {
|
||||||
|
greetMsg += "\nMOTD:\n" + motd;
|
||||||
|
timeout = null;
|
||||||
|
GM_setValue("motdcount", motdShowCount);
|
||||||
|
GM_setValue("motd", motd);
|
||||||
|
} else {
|
||||||
|
var motdcount = GM_getValue("motdcount");
|
||||||
|
if (motdcount == undefined) {
|
||||||
|
GM_setValue("motdcount", motdShowCount);
|
||||||
|
motdcount = motdShowCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
motdcount--;
|
||||||
|
if (motdcount > 0) {
|
||||||
|
greetMsg += "\nMOTD:\n" + motd;
|
||||||
|
timeout = null;
|
||||||
|
GM_setValue("motdcount", motdcount);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ShowMessage({
|
||||||
|
m: greetMsg,
|
||||||
|
isSimple: true
|
||||||
|
}, timeout, ShowHelp); // showing message. If "m" is empty it wont show it, thats how showSplash works.
|
||||||
|
}
|
||||||
|
|
||||||
|
//: }}}
|
||||||
|
|
||||||
|
//: Quiz saving {{{
|
||||||
|
|
||||||
|
function HandleResults(url) {
|
||||||
|
var allResults = new QuestionDB();
|
||||||
|
// TODO fix this
|
||||||
|
if (data)
|
||||||
|
for (var i = 0; i < data.length; i++) // going trough all subjects
|
||||||
|
if (data.GetIfActive(i)) // if the subject is active
|
||||||
|
for (var j = 0; j < data.Subjects[i].Questions.length; j++)
|
||||||
|
allResults.AddQuestion("tmp", data.Subjects[i].Questions[j]);
|
||||||
|
SaveQuiz(GetQuiz(), allResults); // saves the quiz questions and answers
|
||||||
|
}
|
||||||
|
|
||||||
function ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentData) {
|
function ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentData) {
|
||||||
var msg = "";
|
var msg = "";
|
||||||
if (addedQ > 0) // if there are more than 0 new question
|
if (addedQ > 0) // if there are more than 0 new question
|
||||||
|
@ -971,22 +988,8 @@ function ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentDa
|
||||||
}
|
}
|
||||||
|
|
||||||
function SearchSameQuestion(questionData, quiz, i) {
|
function SearchSameQuestion(questionData, quiz, i) {
|
||||||
var j = 0;
|
var r = questionData.Search(quiz[i]);
|
||||||
for (var j = 0; j < questionData.length; j++) {
|
return r.length;
|
||||||
var q1 = SimplifyStringForComparison(questionData[j].q); // existing data-s question
|
|
||||||
var q2 = SimplifyStringForComparison(quiz[i].q); // new datas question
|
|
||||||
var a1 = SimplifyStringForComparison(questionData[j].a); // existing data-s answer
|
|
||||||
var a2 = SimplifyStringForComparison(quiz[i].a); // new datas answer
|
|
||||||
if (q1.includes(q2) && a2.includes(a2)) { // if the questions and the answers match
|
|
||||||
if (quiz[i].i && questionData[j].i) { // if it has image questionData
|
|
||||||
if (questionData[j].i.includes(quiz[i].i)) // if they are the same
|
|
||||||
return j;
|
|
||||||
} else {
|
|
||||||
return j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// this should get the image url from a result page
|
// this should get the image url from a result page
|
||||||
|
@ -1046,7 +1049,7 @@ function SaveQuiz(quiz, questionData) {
|
||||||
try {
|
try {
|
||||||
var subj = "NOSUBJ";
|
var subj = "NOSUBJ";
|
||||||
try {
|
try {
|
||||||
subj = document.getElementById("page-header").innerText.split("\n")[0];
|
subj = GetCurrentSubjectName();
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
var useNetDB = GM_getValue("useNetDB");
|
var useNetDB = GM_getValue("useNetDB");
|
||||||
if (useNetDB != undefined && (useNetDB == 0 || useNetDB == 1)) {
|
if (useNetDB != undefined && (useNetDB == 0 || useNetDB == 1)) {
|
||||||
|
@ -1102,7 +1105,7 @@ function GetQuiz() {
|
||||||
|
|
||||||
if (question.a != undefined) // adding only if has question
|
if (question.a != undefined) // adding only if has question
|
||||||
{
|
{
|
||||||
quiz.push(question); // adding current question to quiz
|
quiz.push(new Question(question.q, question.a, question.i)); // adding current question to quiz
|
||||||
} else {
|
} else {
|
||||||
console.log("error getting queston, or its incorrect");
|
console.log("error getting queston, or its incorrect");
|
||||||
console.log(question);
|
console.log(question);
|
||||||
|
@ -1120,6 +1123,7 @@ function GetQuiz() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//: }}}
|
||||||
|
|
||||||
function SimplifyImages(imgs) {
|
function SimplifyImages(imgs) {
|
||||||
var questionImages = []; // the array for the image names in question
|
var questionImages = []; // the array for the image names in question
|
||||||
|
@ -1135,9 +1139,9 @@ function SimplifyImages(imgs) {
|
||||||
return questionImages;
|
return questionImages;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: }}}
|
||||||
// Minor logic stuff
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: Minor logic stuff {{{
|
||||||
|
|
||||||
// adds image names to image nodes
|
// adds image names to image nodes
|
||||||
function AddImageNamesToImages(imgs) {
|
function AddImageNamesToImages(imgs) {
|
||||||
|
@ -1266,9 +1270,9 @@ function HighLightAnswer(results, currQuestionNumber) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: }}}
|
||||||
// Minor UI stuff
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: Minor UI stuff {{{
|
||||||
|
|
||||||
// shows a message with "msg" text, "matchPercent" tip and transp, and "timeout" time
|
// shows a message with "msg" text, "matchPercent" tip and transp, and "timeout" time
|
||||||
function ShowMessage(msgItem, timeout, funct) {
|
function ShowMessage(msgItem, timeout, funct) {
|
||||||
|
@ -1776,9 +1780,9 @@ function ShowMenuList() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: }}}
|
||||||
// Generic Helper stuff
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: Generic utils {{{
|
||||||
|
|
||||||
function RemoveMultipleItems(array) {
|
function RemoveMultipleItems(array) {
|
||||||
var newArray = [];
|
var newArray = [];
|
||||||
|
@ -1870,9 +1874,9 @@ function SendXHRMessage(message) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: }}}
|
||||||
// Help
|
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//: Help {{{
|
||||||
|
|
||||||
// shows some neat help
|
// shows some neat help
|
||||||
function ShowHelp() {
|
function ShowHelp() {
|
||||||
|
@ -1881,6 +1885,8 @@ function ShowHelp() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//: }}}
|
||||||
|
//
|
||||||
// I am not too proud to cry that He and he
|
// I am not too proud to cry that He and he
|
||||||
// Will never never go out of my mind.
|
// Will never never go out of my mind.
|
||||||
// All his bones crying, and poor in all but pain,
|
// All his bones crying, and poor in all but pain,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue