NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Moodle Hero // @namespace http://tampermonkey.net/ // @version 0.2 // @description Vágólapra másolja a kérdéseket, válaszlehetőségeket, és a helyes válaszokat egy moodle teszt megnyitásakor. // @author Aron // @include https://*moodle*mod/quiz/attempt* // @include https://*moodle*mod/quiz/review* // @grant GM_setClipboard // @license MIT // ==/UserScript== (function() { 'use strict'; runMe(); })(); function runMe() { let kerdesek = new Array(); let valaszok = new Array(); let bejeloltek = new Array(); let teszt = $('title').text(); let targy = $('h1').text(); let helyesValaszok = new Array(); $('div.formulation').each(function(index, value) { //kiolvassuk a kérdéseket let kerdesDiv = $(this).find("div.qtext"); let altKerdesP = $(this).find("p"); if(kerdesDiv.length) { kerdesek.push(kerdesDiv.eq(0).text().replace(/\s+/g, ' ').trim()); } else if (altKerdesP.length) { kerdesek.push(altKerdesP.eq(0).contents().filter(function(){if ( $( this ).is( "span" ) ) {return false;} else {return true;}}).text().replace(/\s+/g, ' ').trim()); } else { kerdesek.push("Nem sikerült kiolvasni a kérdést."); } //kiolvassuk a vákaszokat let valaszDiv = $(this).find(".answer"); let valaszTomb; if(valaszDiv.length) { valaszDiv.each(function(index, value) { let szoveg = $(this).find("label").text(); let selectek = $(this).find("select"); if(szoveg.substring(0,3) == "a. ") { valaszTomb = new Array(); $(this).find("label").each(function(a, b) { valaszTomb[a] = $(this).text().slice(3).trim(); }); } else if (szoveg.substring(0,3) == "Iga") { valaszTomb = new Array(); valaszTomb.push("Igaz"); valaszTomb.push("Hamis"); } else if (szoveg.length > 1) { valaszTomb = new Array(); $(this).find("label").each(function(a, b) { valaszTomb[a] = $(this).text().trim(); }); } else { valaszTomb = []; } }); } else { valaszTomb = []; } valaszok.push(valaszTomb); //kiolvassuk a helyes válaszokat let helyesValaszDiv = $(this).parent().find("div.rightanswer"); let altHelyesValaszSpan = $(this).find("span.feedbackspan"); if(helyesValaszDiv.length) { helyesValaszok.push(helyesValaszDiv.text().replace("A helyes válasz: ", "").replace("A helyes válasz: ", "")); } else if(altHelyesValaszSpan.length) { let helyesvalaszBuilder = ""; altHelyesValaszSpan.each(function(index, value) { helyesvalaszBuilder += $(this).html().split("<br")[0].replace("A helyes válasz: ", "").replace("A helyes válaszok: ", "") + ", "; }); helyesValaszok.push(helyesvalaszBuilder); } else { helyesValaszok.push(''); } }); //végleges formára hozzuk a kiolvasottakat let clipboard = ""; let abc = "abcdefghijklmnopqrstuvwxyz"; for(let i = 0; i < Math.min(kerdesek.length, valaszok.length, helyesValaszok.length); i++) { let valaszOpciok = "\r\n"; for (let j = 0; j < valaszok[i].length; j++) { valaszOpciok += abc[j] + ") " + valaszok[i][j] + "\r\n"; } clipboard += (i+1)+". kérdés: " + kerdesek[i] + valaszOpciok + "Helyes válasz: " + helyesValaszok[i]+ "\r\n\r\n"; } if(clipboard) GM_setClipboard(clipboard); }