diff --git a/main.js b/main.js index a536f69..a49d06a 100644 --- a/main.js +++ b/main.js @@ -32,10 +32,11 @@ var serverAdress = "https://questionmining.tk/"; // forcing pages for testing. unless you test, do not set these to true! // only one of these should be true for testing -const forceTestPage = true; +const forceTestPage = false; const forceResultPage = false; const forceDefaultPage = false; const logElementGetting = false; +const log = false; var motdShowCount = 3; var motd = ""; @@ -250,16 +251,16 @@ function Main() { active: true }); }); - console.log("------------------------------------------"); - console.log("script error at main:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at main:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } if (url.includes("eduplayer")) // if the current site is a video site 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." ); }); @@ -272,74 +273,74 @@ function Main() { function GetAllQuestionsDropdown() { if (logElementGetting) - console.log("getting dropdown question"); + Log("getting dropdown question"); return document.getElementById("responseform").getElementsByTagName("p")[0].innerText; } function GetAllQuestionsQtext() { if (logElementGetting) - console.log("getting all questions qtext"); + Log("getting all questions qtext"); return document.getElementById("responseform").getElementsByClassName("qtext"); // getting questions } function GetAllQuestionsP() { if (logElementGetting) - console.log("getting all questions by tag p"); + Log("getting all questions by tag p"); return document.getElementById("responseform").getElementsByTagName("p"); } function GetFormulationClearfix() { if (logElementGetting) - console.log("getting formulation clearfix lol"); + Log("getting formulation clearfix lol"); return document.getElementsByClassName("formulation clearfix"); } function GetAnswerOptions() { // TODO if (logElementGetting) - console.log("getting all answer options"); + Log("getting all answer options"); return GetFormulationClearfix()[0].childNodes[3].innerText; } function GetQuestionImages() { if (logElementGetting) - console.log("getting question images"); + Log("getting question images"); return GetFormulationClearfix()[0].getElementsByTagName("img"); } function GetCurrentSubjectName() { if (logElementGetting) - console.log("getting current subjects name"); + Log("getting current subjects name"); return document.getElementById("page-header").innerText.split("\n")[0]; } function GetVideo() { if (logElementGetting) - console.log("getting video stuff"); + Log("getting video stuff"); return document.getElementsByTagName("video")[0]; } function GetVideoElement() { if (logElementGetting) - console.log("getting video element"); + Log("getting video element"); return document.getElementById("videoElement").parentNode; } function GetAllAnswer(index) { if (logElementGetting) - console.log("getting all answers, ind: " + index); + Log("getting all answers, ind: " + index); return document.getElementsByClassName("answer")[index].childNodes; } function GetInputType(answers, i) { if (logElementGetting) - console.log("getting input type"); + Log("getting input type"); return answers[i].getElementsByTagName("input")[0].type; } function GetFormResult() { if (logElementGetting) - console.log("getting form result"); + Log("getting form result"); var t = document.getElementsByTagName("form")[0].childNodes[0].childNodes; if (t.length > 0 && t[0].tagName == undefined) // debreceni moodle return document.getElementsByTagName("form")[1].childNodes[0].childNodes; @@ -349,28 +350,28 @@ function GetFormResult() { function GetQText(i) { if (logElementGetting) - console.log("getting qtext by index: " + i); + Log("getting qtext by index: " + i); var results = GetFormResult(); // getting results element return results[i].getElementsByClassName("qtext"); } function GetDropboxes(i) { if (logElementGetting) - console.log("getting dropboxes by index: " + i); + Log("getting dropboxes by index: " + i); var results = GetFormResult(); // getting results element return results[i].getElementsByTagName("select"); } function GetCurrQuestion(i) { 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[ 0].innerText; } function GetCurrentAnswer(i) { if (logElementGetting) - console.log("getting curr answer by index: " + i); + Log("getting curr answer by index: " + i); var results = GetFormResult(); // getting results element var t = results[i].getElementsByClassName("formulation clearfix")[0].getElementsByTagName("span"); if (t.length > 2) @@ -379,7 +380,7 @@ function GetCurrentAnswer(i) { function GetSelectAnswer() { if (logElementGetting) - console.log("getting selected answer"); + Log("getting selected answer"); var t = document.getElementsByTagName("select"); if (t.length > 0) return t[0].options[document.getElementsByTagName("select")[ @@ -388,7 +389,7 @@ function GetSelectAnswer() { function GetAnswerNode(i) { if (logElementGetting) - console.log("getting answer node"); + Log("getting answer node"); var results = GetFormResult(); // getting results element var r = results[i].getElementsByClassName("answer")[0].childNodes; var ret = []; @@ -400,7 +401,7 @@ function GetAnswerNode(i) { function GetPossibleAnswers(i) { if (logElementGetting) - console.log("getting possible answers"); + Log("getting possible answers"); var results = GetFormResult(); // getting results element var items = GetFormResult()[i].getElementsByTagName("label"); var r = []; @@ -421,14 +422,14 @@ function GetPossibleAnswers(i) { function GetRightAnswerIfCorrectShown(i) { if (logElementGetting) - console.log("getting right answer if correct shown"); + Log("getting right answer if correct shown"); var results = GetFormResult(); // getting results element return results[i].getElementsByClassName("rightanswer"); } function GetWrongAnswerIfCorrectNotShown(i) { 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 n = results[i].getElementsByTagName("i")[0].parentNode; if (n.className.includes("incorrect")) @@ -439,7 +440,7 @@ function GetWrongAnswerIfCorrectNotShown(i) { function GetRightAnswerIfCorrectNotShown(i) { 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 n = results[i].getElementsByTagName("i")[0].parentNode; if (n.className.includes("correct") && !n.className.includes("incorrect")) @@ -450,20 +451,20 @@ function GetRightAnswerIfCorrectNotShown(i) { function GetFormCFOfResult(result) { if (logElementGetting) - console.log("getting formulation clearfix"); + Log("getting formulation clearfix"); return result.getElementsByClassName("formulation clearfix")[0]; } function GetResultText(i) { if (logElementGetting) - console.log("getting result text"); + Log("getting result text"); var results = GetFormResult(); // getting results element return GetFormCFOfResult(results[i]).getElementsByTagName("p"); } function GetResultImage(i) { if (logElementGetting) - console.log("getting result image"); + Log("getting result image"); var results = GetFormResult(); // getting results element return GetFormCFOfResult(results[i]).getElementsByTagName("img"); } @@ -500,20 +501,20 @@ function GetQuestionFromTest() { } } } catch (e) { - console.log("------------------------------------------"); - console.log("script error at getting question:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at getting question:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } var imgNodes = ""; // the image nodes for questions try { 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 } catch (e) { - console.log(e); - console.log("Some error with images"); + Log(e); + Log("Some error with images"); } return { imgnodes: imgNodes, @@ -626,7 +627,7 @@ function GetRightAnswerFromResultv2(i) { } } } 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) { - console.log("------------------------------------------"); - console.log("script error at addEventListener:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at addEventListener:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } VersionActions(); count = Load(cwith); // loads resources @@ -728,12 +729,12 @@ function ReadFile(cwith) { }; } } catch (e) { - console.log("------------------------------------------"); - console.log("script error at reading file:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at reading file:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } NLoad(resource, cwith); } @@ -754,15 +755,15 @@ function ReadNetDB(cwith, useNetDB) { }); } try { - console.log("Sending XMLHTTP Request..."); + Log("Sending XMLHTTP Request..."); return NewXMLHttpRequest(); } catch (e) { - console.log("------------------------------------------"); - console.log("script error at reading online database:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at reading online database:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -877,8 +878,8 @@ function LoadMOTD(resource) { try { motd = resource.motd; } catch (e) { - console.log("Error loading motd :c"); - console.log(e); + Log("Error loading motd :c"); + Log(e); } } @@ -886,8 +887,8 @@ function LoadVersion(resource) { try { lastestVersion = resource.version; } catch (e) { - console.log("Error loading version :c"); - console.log(e); + Log("Error loading version :c"); + Log(e); } } @@ -900,7 +901,7 @@ function NLoad(resource, cwith) { try { d = JSON.parse(resource); } catch (e) { - console.log("Old data, trying with old methods...."); + Log("Old data, trying with old methods...."); d = ParseRawData(resource).result; } var r = new QuestionDB(); @@ -929,12 +930,12 @@ function NLoad(resource, cwith) { data = r; count = allCount + 1; // couse starting with -1 to show errors } catch (e) { - console.log("------------------------------------------"); - console.log("script error at loading:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at loading:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); count = -1; // returns -1 if error } var i = 0; @@ -1211,7 +1212,7 @@ function SaveQuiz(quiz, questionData) { sentData.subj = GetCurrentSubjectName(); } catch (e) { sentData.subj = "NOSUBJ"; - console.log("unable to get subject name :c"); + Log("unable to get subject name :c"); } var useNetDB = GM_getValue("useNetDB"); if (useNetDB != undefined && useNetDB == 1) { @@ -1222,17 +1223,17 @@ function SaveQuiz(quiz, questionData) { sendSuccess = true; } } catch (e) { - console.log("error at sending data to server."); - console.log(e); + Log("error at sending data to server."); + Log(e); } ShowSaveQuizDialog(addedQ, allQ, allOutput, output, sendSuccess, sentData); } catch (e) { - console.log("------------------------------------------"); - console.log("script error at saving quiz:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at saving quiz:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -1263,18 +1264,18 @@ function GetQuiz() { { quiz.push(new Question(question.q, question.a, question.i)); // adding current question to quiz } else { - console.log("error getting queston, or its incorrect"); - console.log(question); + Log("error getting queston, or its incorrect"); + Log(question); } } return quiz; } catch (e) { - console.log("------------------------------------------"); - console.log("script error at quiz parsing:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at quiz parsing:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -1341,8 +1342,8 @@ function AddVideoHotkeys(url) { video.currentTime -= seekTime; } } catch (err) { - console.log("Hotkey error."); - console.log(err.message); + Log("Hotkey error."); + Log(err.message); } }); 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. { - 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 {{{ @@ -1573,7 +1579,7 @@ function ShowMessage(msgItem, timeout, funct) { } 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 ------------------------------------------------------------------------------------------------------------ var prevSuggButton = CreateNodeWithText(prevSuggestionCell, "<", "button"); prevSuggButton.style.margin = buttonMargin; // fancy margin @@ -1643,12 +1649,12 @@ function ShowMessage(msgItem, timeout, funct) { } }); } catch (e) { - console.log("------------------------------------------"); - console.log("script error at showing message:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at showing message:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -1701,12 +1707,12 @@ function ShowMenu() { appedtTo.appendChild(menuButtonDiv); } catch (e) { - console.log("------------------------------------------"); - console.log("script error at showing menu:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at showing menu:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -1929,12 +1935,12 @@ function ShowMenuList() { menuDiv.appendChild(tbl); // adding table box to main div appedtTo.appendChild(menuDiv); } catch (e) { - console.log("------------------------------------------"); - console.log("script error at showing menu list:"); - console.log(e.message); - console.log("------------------------------------------"); - console.log(e.stack); - console.log("------------------------------------------"); + Log("------------------------------------------"); + Log("script error at showing menu list:"); + Log(e.message); + Log("------------------------------------------"); + Log(e.stack); + Log("------------------------------------------"); } } @@ -2024,7 +2030,7 @@ function SendXHRMessage(message) { "Content-Type": "application/x-www-form-urlencoded" }, onerror: function(response) { - console.log("XMLHTTP request POST error"); + Log("XMLHTTP request POST error"); } }); }