Small logging improvement

This commit is contained in:
YourFriendlyNeighborhoodDealer 2018-12-19 19:40:32 +01:00
parent 9c75edfc3c
commit f9244c9911

230
main.js
View file

@ -32,10 +32,11 @@ var serverAdress = "https://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; const forceTestPage = false;
const forceResultPage = false; const forceResultPage = false;
const forceDefaultPage = false; const forceDefaultPage = false;
const logElementGetting = false; const logElementGetting = false;
const log = false;
var motdShowCount = 3; var motdShowCount = 3;
var motd = ""; var motd = "";
@ -250,16 +251,16 @@ function Main() {
active: true active: true
}); });
}); });
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at main:"); Log("script error at main:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
if (url.includes("eduplayer")) // if the current site is a video site if (url.includes("eduplayer")) // if the current site is a video site
AddVideoHotkeys(url); // adding video hotkeys AddVideoHotkeys(url); // adding video hotkeys
console.log( Log(
"Itteni hibák 100% a moodle hiba. Kivéve, ha oda van írva hogy script error ;) Ha ilyesmi szerepel itt, akkor olvasd el a segítség szekciót! Nagy esélyel a kérdéseket nem lehetett beolvasni." "Itteni hibák 100% a moodle hiba. Kivéve, ha oda van írva hogy script error ;) Ha ilyesmi szerepel itt, akkor olvasd el a segítség szekciót! Nagy esélyel a kérdéseket nem lehetett beolvasni."
); );
}); });
@ -272,74 +273,74 @@ function Main() {
function GetAllQuestionsDropdown() { function GetAllQuestionsDropdown() {
if (logElementGetting) if (logElementGetting)
console.log("getting dropdown question"); Log("getting dropdown question");
return document.getElementById("responseform").getElementsByTagName("p")[0].innerText; return document.getElementById("responseform").getElementsByTagName("p")[0].innerText;
} }
function GetAllQuestionsQtext() { function GetAllQuestionsQtext() {
if (logElementGetting) if (logElementGetting)
console.log("getting all questions qtext"); Log("getting all questions qtext");
return document.getElementById("responseform").getElementsByClassName("qtext"); // getting questions return document.getElementById("responseform").getElementsByClassName("qtext"); // getting questions
} }
function GetAllQuestionsP() { function GetAllQuestionsP() {
if (logElementGetting) if (logElementGetting)
console.log("getting all questions by tag p"); Log("getting all questions by tag p");
return document.getElementById("responseform").getElementsByTagName("p"); return document.getElementById("responseform").getElementsByTagName("p");
} }
function GetFormulationClearfix() { function GetFormulationClearfix() {
if (logElementGetting) if (logElementGetting)
console.log("getting formulation clearfix lol"); Log("getting formulation clearfix lol");
return document.getElementsByClassName("formulation clearfix"); return document.getElementsByClassName("formulation clearfix");
} }
function GetAnswerOptions() { function GetAnswerOptions() {
// TODO // TODO
if (logElementGetting) if (logElementGetting)
console.log("getting all answer options"); Log("getting all answer options");
return GetFormulationClearfix()[0].childNodes[3].innerText; return GetFormulationClearfix()[0].childNodes[3].innerText;
} }
function GetQuestionImages() { function GetQuestionImages() {
if (logElementGetting) if (logElementGetting)
console.log("getting question images"); Log("getting question images");
return GetFormulationClearfix()[0].getElementsByTagName("img"); return GetFormulationClearfix()[0].getElementsByTagName("img");
} }
function GetCurrentSubjectName() { function GetCurrentSubjectName() {
if (logElementGetting) if (logElementGetting)
console.log("getting current subjects name"); Log("getting current subjects name");
return document.getElementById("page-header").innerText.split("\n")[0]; return document.getElementById("page-header").innerText.split("\n")[0];
} }
function GetVideo() { function GetVideo() {
if (logElementGetting) if (logElementGetting)
console.log("getting video stuff"); Log("getting video stuff");
return document.getElementsByTagName("video")[0]; return document.getElementsByTagName("video")[0];
} }
function GetVideoElement() { function GetVideoElement() {
if (logElementGetting) if (logElementGetting)
console.log("getting video element"); Log("getting video element");
return document.getElementById("videoElement").parentNode; return document.getElementById("videoElement").parentNode;
} }
function GetAllAnswer(index) { function GetAllAnswer(index) {
if (logElementGetting) if (logElementGetting)
console.log("getting all answers, ind: " + index); Log("getting all answers, ind: " + index);
return document.getElementsByClassName("answer")[index].childNodes; return document.getElementsByClassName("answer")[index].childNodes;
} }
function GetInputType(answers, i) { function GetInputType(answers, i) {
if (logElementGetting) if (logElementGetting)
console.log("getting input type"); Log("getting input type");
return answers[i].getElementsByTagName("input")[0].type; return answers[i].getElementsByTagName("input")[0].type;
} }
function GetFormResult() { function GetFormResult() {
if (logElementGetting) if (logElementGetting)
console.log("getting form result"); Log("getting form result");
var t = document.getElementsByTagName("form")[0].childNodes[0].childNodes; var t = document.getElementsByTagName("form")[0].childNodes[0].childNodes;
if (t.length > 0 && t[0].tagName == undefined) // debreceni moodle if (t.length > 0 && t[0].tagName == undefined) // debreceni moodle
return document.getElementsByTagName("form")[1].childNodes[0].childNodes; return document.getElementsByTagName("form")[1].childNodes[0].childNodes;
@ -349,28 +350,28 @@ function GetFormResult() {
function GetQText(i) { function GetQText(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting qtext by index: " + i); Log("getting qtext by index: " + i);
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
return results[i].getElementsByClassName("qtext"); return results[i].getElementsByClassName("qtext");
} }
function GetDropboxes(i) { function GetDropboxes(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting dropboxes by index: " + i); Log("getting dropboxes by index: " + i);
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
return results[i].getElementsByTagName("select"); return results[i].getElementsByTagName("select");
} }
function GetCurrQuestion(i) { function GetCurrQuestion(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting curr questions by index: " + i); Log("getting curr questions by index: " + i);
return document.getElementsByTagName("form")[0].childNodes[0].childNodes[i].childNodes[1].childNodes[ return document.getElementsByTagName("form")[0].childNodes[0].childNodes[i].childNodes[1].childNodes[
0].innerText; 0].innerText;
} }
function GetCurrentAnswer(i) { function GetCurrentAnswer(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting curr answer by index: " + i); Log("getting curr answer by index: " + i);
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
var t = results[i].getElementsByClassName("formulation clearfix")[0].getElementsByTagName("span"); var t = results[i].getElementsByClassName("formulation clearfix")[0].getElementsByTagName("span");
if (t.length > 2) if (t.length > 2)
@ -379,7 +380,7 @@ function GetCurrentAnswer(i) {
function GetSelectAnswer() { function GetSelectAnswer() {
if (logElementGetting) if (logElementGetting)
console.log("getting selected answer"); Log("getting selected answer");
var t = document.getElementsByTagName("select"); var t = document.getElementsByTagName("select");
if (t.length > 0) if (t.length > 0)
return t[0].options[document.getElementsByTagName("select")[ return t[0].options[document.getElementsByTagName("select")[
@ -388,7 +389,7 @@ function GetSelectAnswer() {
function GetAnswerNode(i) { function GetAnswerNode(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting answer node"); Log("getting answer node");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
var r = results[i].getElementsByClassName("answer")[0].childNodes; var r = results[i].getElementsByClassName("answer")[0].childNodes;
var ret = []; var ret = [];
@ -400,7 +401,7 @@ function GetAnswerNode(i) {
function GetPossibleAnswers(i) { function GetPossibleAnswers(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting possible answers"); Log("getting possible answers");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
var items = GetFormResult()[i].getElementsByTagName("label"); var items = GetFormResult()[i].getElementsByTagName("label");
var r = []; var r = [];
@ -421,14 +422,14 @@ function GetPossibleAnswers(i) {
function GetRightAnswerIfCorrectShown(i) { function GetRightAnswerIfCorrectShown(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting right answer if correct shown"); Log("getting right answer if correct shown");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
return results[i].getElementsByClassName("rightanswer"); return results[i].getElementsByClassName("rightanswer");
} }
function GetWrongAnswerIfCorrectNotShown(i) { function GetWrongAnswerIfCorrectNotShown(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting wrong answer if correct not shown"); Log("getting wrong answer if correct not shown");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
var n = results[i].getElementsByTagName("i")[0].parentNode; var n = results[i].getElementsByTagName("i")[0].parentNode;
if (n.className.includes("incorrect")) if (n.className.includes("incorrect"))
@ -439,7 +440,7 @@ function GetWrongAnswerIfCorrectNotShown(i) {
function GetRightAnswerIfCorrectNotShown(i) { function GetRightAnswerIfCorrectNotShown(i) {
if (logElementGetting) if (logElementGetting)
console.log("Getting right answer if correct not shown"); Log("Getting right answer if correct not shown");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
var n = results[i].getElementsByTagName("i")[0].parentNode; var n = results[i].getElementsByTagName("i")[0].parentNode;
if (n.className.includes("correct") && !n.className.includes("incorrect")) if (n.className.includes("correct") && !n.className.includes("incorrect"))
@ -450,20 +451,20 @@ function GetRightAnswerIfCorrectNotShown(i) {
function GetFormCFOfResult(result) { function GetFormCFOfResult(result) {
if (logElementGetting) if (logElementGetting)
console.log("getting formulation clearfix"); Log("getting formulation clearfix");
return result.getElementsByClassName("formulation clearfix")[0]; return result.getElementsByClassName("formulation clearfix")[0];
} }
function GetResultText(i) { function GetResultText(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting result text"); Log("getting result text");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
return GetFormCFOfResult(results[i]).getElementsByTagName("p"); return GetFormCFOfResult(results[i]).getElementsByTagName("p");
} }
function GetResultImage(i) { function GetResultImage(i) {
if (logElementGetting) if (logElementGetting)
console.log("getting result image"); Log("getting result image");
var results = GetFormResult(); // getting results element var results = GetFormResult(); // getting results element
return GetFormCFOfResult(results[i]).getElementsByTagName("img"); return GetFormCFOfResult(results[i]).getElementsByTagName("img");
} }
@ -500,20 +501,20 @@ function GetQuestionFromTest() {
} }
} }
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at getting question:"); Log("script error at getting question:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
var imgNodes = ""; // the image nodes for questions var imgNodes = ""; // the image nodes for questions
try { try {
imgNodes = GetQuestionImages(); // getting question images, if there is any imgNodes = GetQuestionImages(); // getting question images, if there is any
AddImageNamesToImages(imgNodes); // adding image names to images, so its easier to search for, or even guessing AddImageNamesToImages(imgNodes); // adding image names to images, so its easier to search for, or even guessing
} catch (e) { } catch (e) {
console.log(e); Log(e);
console.log("Some error with images"); Log("Some error with images");
} }
return { return {
imgnodes: imgNodes, imgnodes: imgNodes,
@ -626,7 +627,7 @@ function GetRightAnswerFromResultv2(i) {
} }
} }
} catch (e) { } catch (e) {
console.log("error at new nodegetting, trying the oldschool way"); Log("error at new nodegetting, trying the oldschool way");
} }
} }
@ -664,12 +665,12 @@ function Init(cwith) {
} }
}()); }());
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at addEventListener:"); Log("script error at addEventListener:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
VersionActions(); VersionActions();
count = Load(cwith); // loads resources count = Load(cwith); // loads resources
@ -728,12 +729,12 @@ function ReadFile(cwith) {
}; };
} }
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at reading file:"); Log("script error at reading file:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
NLoad(resource, cwith); NLoad(resource, cwith);
} }
@ -754,15 +755,15 @@ function ReadNetDB(cwith, useNetDB) {
}); });
} }
try { try {
console.log("Sending XMLHTTP Request..."); Log("Sending XMLHTTP Request...");
return NewXMLHttpRequest(); return NewXMLHttpRequest();
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at reading online database:"); Log("script error at reading online database:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -877,8 +878,8 @@ function LoadMOTD(resource) {
try { try {
motd = resource.motd; motd = resource.motd;
} catch (e) { } catch (e) {
console.log("Error loading motd :c"); Log("Error loading motd :c");
console.log(e); Log(e);
} }
} }
@ -886,8 +887,8 @@ function LoadVersion(resource) {
try { try {
lastestVersion = resource.version; lastestVersion = resource.version;
} catch (e) { } catch (e) {
console.log("Error loading version :c"); Log("Error loading version :c");
console.log(e); Log(e);
} }
} }
@ -900,7 +901,7 @@ function NLoad(resource, cwith) {
try { try {
d = JSON.parse(resource); d = JSON.parse(resource);
} catch (e) { } catch (e) {
console.log("Old data, trying with old methods...."); Log("Old data, trying with old methods....");
d = ParseRawData(resource).result; d = ParseRawData(resource).result;
} }
var r = new QuestionDB(); var r = new QuestionDB();
@ -929,12 +930,12 @@ function NLoad(resource, cwith) {
data = r; data = r;
count = allCount + 1; // couse starting with -1 to show errors count = allCount + 1; // couse starting with -1 to show errors
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at loading:"); Log("script error at loading:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
count = -1; // returns -1 if error count = -1; // returns -1 if error
} }
var i = 0; var i = 0;
@ -1211,7 +1212,7 @@ function SaveQuiz(quiz, questionData) {
sentData.subj = GetCurrentSubjectName(); sentData.subj = GetCurrentSubjectName();
} catch (e) { } catch (e) {
sentData.subj = "NOSUBJ"; sentData.subj = "NOSUBJ";
console.log("unable to get subject name :c"); Log("unable to get subject name :c");
} }
var useNetDB = GM_getValue("useNetDB"); var useNetDB = GM_getValue("useNetDB");
if (useNetDB != undefined && useNetDB == 1) { if (useNetDB != undefined && useNetDB == 1) {
@ -1222,17 +1223,17 @@ function SaveQuiz(quiz, questionData) {
sendSuccess = true; sendSuccess = true;
} }
} catch (e) { } catch (e) {
console.log("error at sending data to server."); Log("error at sending data to server.");
console.log(e); Log(e);
} }
ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentData); ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentData);
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at saving quiz:"); Log("script error at saving quiz:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -1263,18 +1264,18 @@ function GetQuiz() {
{ {
quiz.push(new Question(question.q, question.a, question.i)); // 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"); Log("error getting queston, or its incorrect");
console.log(question); Log(question);
} }
} }
return quiz; return quiz;
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at quiz parsing:"); Log("script error at quiz parsing:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -1341,8 +1342,8 @@ function AddVideoHotkeys(url) {
video.currentTime -= seekTime; video.currentTime -= seekTime;
} }
} catch (err) { } catch (err) {
console.log("Hotkey error."); Log("Hotkey error.");
console.log(err.message); Log(err.message);
} }
}); });
var toadd = GetVideoElement(); var toadd = GetVideoElement();
@ -1419,12 +1420,17 @@ function HighLightAnswer(results, currQuestionNumber) {
} }
} catch (e) // catching errors. Sometimes there are random errors, wich i did not test, but they are rare, and does not break the main script. } catch (e) // catching errors. Sometimes there are random errors, wich i did not test, but they are rare, and does not break the main script.
{ {
console.log("script error at highlightin answer: " + e.message); Log("script error at highlightin answer: " + e.message);
} }
} }
//: }}} //: }}}
function Log(value) {
if (log)
console.log(value);
}
//: }}} //: }}}
//: Minor UI stuff {{{ //: Minor UI stuff {{{
@ -1573,7 +1579,7 @@ function ShowMessage(msgItem, timeout, funct) {
} }
var buttonMargin = "2px 2px 2px 2px"; // uniform button margin var buttonMargin = "2px 2px 2px 2px"; // uniform button margin
if (msgItem[currItem].length > 1) { // TODO: test this if (msgItem[currItem].length > 1) {
// PREV SUGG BUTTON ------------------------------------------------------------------------------------------------------------ // PREV SUGG BUTTON ------------------------------------------------------------------------------------------------------------
var prevSuggButton = CreateNodeWithText(prevSuggestionCell, "<", "button"); var prevSuggButton = CreateNodeWithText(prevSuggestionCell, "<", "button");
prevSuggButton.style.margin = buttonMargin; // fancy margin prevSuggButton.style.margin = buttonMargin; // fancy margin
@ -1643,12 +1649,12 @@ function ShowMessage(msgItem, timeout, funct) {
} }
}); });
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at showing message:"); Log("script error at showing message:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -1701,12 +1707,12 @@ function ShowMenu() {
appedtTo.appendChild(menuButtonDiv); appedtTo.appendChild(menuButtonDiv);
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at showing menu:"); Log("script error at showing menu:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -1929,12 +1935,12 @@ function ShowMenuList() {
menuDiv.appendChild(tbl); // adding table box to main div menuDiv.appendChild(tbl); // adding table box to main div
appedtTo.appendChild(menuDiv); appedtTo.appendChild(menuDiv);
} catch (e) { } catch (e) {
console.log("------------------------------------------"); Log("------------------------------------------");
console.log("script error at showing menu list:"); Log("script error at showing menu list:");
console.log(e.message); Log(e.message);
console.log("------------------------------------------"); Log("------------------------------------------");
console.log(e.stack); Log(e.stack);
console.log("------------------------------------------"); Log("------------------------------------------");
} }
} }
@ -2024,7 +2030,7 @@ function SendXHRMessage(message) {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
}, },
onerror: function(response) { onerror: function(response) {
console.log("XMLHTTP request POST error"); Log("XMLHTTP request POST error");
} }
}); });
} }