diff --git a/frame.js b/frame.js index 772c9bd..f48f6b8 100644 --- a/frame.js +++ b/frame.js @@ -21,7 +21,7 @@ // ==UserScript== // @name Moodle/Elearning/KMOOC test help -// @version 1.6.2.6 +// @version 1.6.2.7 // @description Online Moodle/Elearning/KMOOC test help // @author YourFriendlyNeighborhoodDealer // @match https://elearning.uni-obuda.hu/main/* diff --git a/main.js b/main.js index 0bb35b4..86d8af1 100644 --- a/main.js +++ b/main.js @@ -31,7 +31,7 @@ const forceTestPage = true; const forceResultPage = false; const forceDefaultPage = false; const logElementGetting = false; -const log = true; +const log = false; const motdShowCount = 3; /* Ammount of times to show motd */ var motd = ""; @@ -943,7 +943,7 @@ function ParseRawData(data) { try { currQuestion.I = JSON.parse(currData); } catch (e) { - currQuestion.I = [currData]; + currQuestion.I = currData.split(','); } } ExpectedIdentifier = ['?', '+']; diff --git a/stable.js b/stable.js index 4e60174..7b776cd 100644 --- a/stable.js +++ b/stable.js @@ -21,7 +21,7 @@ // ==UserScript== // @name Moodle/Elearning/KMOOC test help -// @version 1.6.2.5 +// @version 1.6.2.7 // @description Online Moodle/Elearning/KMOOC test help // @author YourFriendlyNeighborhoodDealer // @match https://elearning.uni-obuda.hu/main/* @@ -44,7 +44,7 @@ var data; // all data, which is in the resource txt var addEventListener; // add event listener function const lastChangeLog = - '- Passzív mód: ha bepipálod a menü gomb alatt, akkor nem tölti be minden alkalommal a kérdéseket (csak csendben vár).\n - Pár lényeges bugfix\n - Ha találkoztok bugokkal, akkor pls report! thanx'; + '- Apró, de lényeges fixek\n - Ha találkoztok bugokkal, akkor pls report! thanx'; const serverAdress = "https://qmining.tk/"; // forcing pages for testing. unless you test, do not set these to true! @@ -60,6 +60,7 @@ var lastestVersion = ""; const minMatchAmmount = 55; + const minResultMatchPercent = 99; const lengthDiffMultiplier = 10; //: Class descriptions {{{ @@ -249,34 +250,52 @@ //: Main function {{{ function Main() { 'use strict'; + console.time('main'); + Init(function(count, subjCount) { var url = location.href; - try { - if ((url.includes("/quiz/") && url.includes("attempt.php")) || forceTestPage) { // if the current page is a test - HandleQuiz(); - } else if ((url.includes("/quiz/") && url.includes("review.php")) || forceResultPage) { // if the current window is a test-s result - HandleResults(url); - } else if ((!url.includes("/quiz/") && !url.includes("review.php") && !url.includes(".pdf")) || - (forceDefaultPage)) { // if the current window is any other window than a quiz or pdf. - HandleUI(url, count, subjCount); - } - } catch (e) { - ShowMessage({ - m: "Fatál error. Check console (f12). Kattints az üzenetre az összes kérdés/válaszért manuális kereséshez!", - isSimple: true - }, undefined, function() { - GM_openInTab(serverAdress + 'legacy', { - active: true + + let skipLoad = GM_getValue("skipLoad"); + if (count == -2 && subjCount == -2 && skipLoad) { + if (url.includes("/quiz/") && url.includes("attempt.php")) + ShowMessage({ + m: "Passzív mód bekapcsolva, válaszok megjelenítéséhez menü gomb alatt kapcsold ki, és frissíts!", + isSimple: true }); - }); - Exception(e, "script error at main:"); + } else { + try { + if ((url.includes("/quiz/") && url.includes("attempt.php")) || forceTestPage) { // if the current page is a test + HandleQuiz(); + } else if ((url.includes("/quiz/") && url.includes("review.php")) || forceResultPage) { // if the current window is a test-s result + HandleResults(url); + } else if ((!url.includes("/quiz/") && !url.includes("review.php") && !url.includes(".pdf")) || + (forceDefaultPage)) { // if the current window is any other window than a quiz or pdf. + HandleUI(url, count, subjCount); + } + } catch (e) { + ShowMessage({ + m: "Fatál error. Check console (f12). Kattints az üzenetre az összes kérdés/válaszért manuális kereséshez!", + isSimple: true + }, undefined, function() { + GM_openInTab(serverAdress + 'legacy', { + active: true + }); + }); + Exception(e, "script error at main:"); + } + if (url.includes("eduplayer")) // if the current site is a video site + AddVideoHotkeys(url); // adding video hotkeys + 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." + ); } - if (url.includes("eduplayer")) // if the current site is a video site - AddVideoHotkeys(url); // adding video hotkeys - 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." - ); }); + + console.log("Moodle Test Script run time:"); + console.timeEnd('main'); + + if (forceTestPage || forceResultPage || forceDefaultPage) + alert("TEST MODE"); } //: }}} @@ -946,8 +965,10 @@ var useNetDB = GM_getValue("useNetDB"); let skipLoad = GM_getValue("skipLoad"); - if (skipLoad) + if (skipLoad) { + cwith(-2, -2); return -1; + } if (useNetDB != undefined && useNetDB == 1) return ReadNetDB(cwith, useNetDB); @@ -1051,7 +1072,7 @@ if (!newVersion && !loaded) // -------------------------------------------------------------------------------------------------------------- { greetMsg = - "Hiba a @resource tagnál, vagy a fileval van gond! (Lehet át lett helyezve, vagy üres.) Vagy válaszd a netes adatok használatát menüben. 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!"; + "Hiba a @resource tagnál, vagy a fileval van gond! (Lehet át lett helyezve, vagy üres, vagy nincs tárgy kiválasztva) Vagy válaszd a netes adatok használatát menüben. 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 @@ -1240,7 +1261,14 @@ function SearchSameQuestion(questionData, quiz, i) { var r = questionData.Search(quiz[i].Q); - return r.length == 0 ? -1 : r.length; + + let count = 0; + r.forEach((item) => { + if (item.match > minResultMatchPercent) + count++; + }); + + return count == 0 ? -1 : count; } // this should get the image url from a result page @@ -1587,7 +1615,7 @@ mainDiv.style.background = "#222d32"; // background color mainDiv.style.color = "#ffffff"; // text color mainDiv.style.borderColor = "#035a8f"; // border color - mainDiv.style.border = "solid"; + mainDiv.style.border = "none"; mainDiv.style.top = (startFromTop) + 'px'; mainDiv.style.left = (window.innerWidth - width) / 2 + 'px'; mainDiv.style.opacity = "0.9"; // setting starting opacity @@ -1768,7 +1796,6 @@ // mainDiv.style.left = (window.innerWidth - width) / 2 + 'px'; var menuButtonDiv = document.createElement("div"); - menuButtonDiv.setAttribute("id", "HelperMenuButton"); menuButtonDiv.style.width = buttonWidth + 'px'; menuButtonDiv.style.height = buttonHeight + 'px'; menuButtonDiv.style.top = (window.innerHeight - buttonHeight * 1.5) + 'px'; @@ -1793,6 +1820,7 @@ menuButton.style.height = buttonHeight - 20 + 'px'; menuButton.style.background = "#222d32"; // background color menuButton.style.color = "#ffffff"; // background color + menuButton.setAttribute("id", "HelperMenuButton"); @@ -1817,12 +1845,16 @@ questionsTickBox.addEventListener("click", function() { GM_setValue("skipLoad", questionsTickBox.checked); - if (GM_getValue("skipLoad")) { - ShowMessage({ - m: "Passzív mód bekapcsolva, mostantól kérdések nem lesznek betöltve/lekérve.", - isSimple: true - }, 10); - } + var msg = ""; + if (GM_getValue("skipLoad")) + msg = "Passzív mód bekapcsolva, mostantól kérdések nem lesznek betöltve/lekérve."; + else + msg = "Passzív mód kikapcsolva, frissíts az érvénybe lépéshez!"; + + ShowMessage({ + m: msg, + isSimple: true + }, 6); }); var loadDataCheckBoxText = CreateNodeWithText(questionsTickBox, @@ -1860,7 +1892,7 @@ menuDiv.style.background = "#222d32"; // background color menuDiv.style.color = "#ffffff"; // text color menuDiv.style.borderColor = "#035a8f"; // border color - menuDiv.style.border = "solid"; + menuDiv.style.border = "none"; menuDiv.style.opacity = "1"; // setting starting opacity var fiveMargin = "5px 5px 5px 5px"; @@ -2121,7 +2153,7 @@ // removes some crap from "q" function SimplifyQuery(q) { - var result = q.replace(/\n/g, "").replace(/\s/g, ' '); // WHY TF ARE THERE TWO KINDA SPACES??? (charcode 160 n 32) + var result = q.replace(/\n/g, " ").replace(/\s/g, ' '); // WHY TF ARE THERE TWO KINDA SPACES??? (charcode 160 n 32) return RemoveUnnecesarySpaces(result); } @@ -2237,5 +2269,4 @@ // O deepest wound of all that he should die // On that darkest day. - })();