mrfrys-node-server/public/man.html
YourFriendlyNeighborhoodDealer c1e71ee014 Small logging, and manual changes II
2018-12-18 10:52:28 +01:00

496 lines
21 KiB
HTML

<html>
<meta charset="UTF-8">
<body bgcolor="#212127">
<head>
<title>Moodle/Elearning/KMOOC manual</title>
<style>
body {
font: normal 17px Verdana;
color: #999999;
}
a {
color: #9999ff;
}
textarea {
font: normal 17px Verdana;
color: white;
background-color: #212127;
width: 90%;
height: 250px;
}
</style>
</head>
<center>
<h1>Moodle/Elearnig/KMOOC manual</h1>
</center>
<center>
Ez a userscript Moodle/Elearnig/KMOOC tesztek megoldása során segítséget jelenít meg.
</center>
</p>
<b>A válasz ablakban jobb felül lévő százalék jelzi, hogy mekkora eséllyel jó a megoldás. Ez
sokszor jó viszonyítás, de semmi sem biztos! Bármikor előfordulhat, hogy nem jó a
megjelenített válasz! Ezért csak saját felelőségedre használd!</b> Sok kikerülhetetlen
hibalehetőség van, amit egyszerű nem lehet scriptben lekezelni (Pl rosszul megadott kérdés
tanár részéről). Kézzel is lehet keresni a elmentett kérdések között. Ezért mindég
legyen egy letöltött verziód a kérdésekről, mert nem 100% hogy mindég elérhető a szerver!
Továbbá ha a moodle oldalán a layout megváltozik, a script nem fog működni! Ez nem annyira
gyakori, de bármikor megtörténhet! Érdemes nem kikapcsolni a tampermonkey-ban a userscript
frissítést. Ez nem windows update, itt tényleg hibajavítások jönnek ki. Hiba, észrevétel
esetén : <a target="_blank" href="https://questionmining.tk">Script Feedback</a> (ezt
gyakran még aznap megnézem.
</p>
</p>
<b>Továbbá ez a userscript HTTP requestekket küldhet egy szerver felé (ha ezt engedélyezed),
ahova az összes megoldott teszteid kérdéseit és (helyes)válaszait feltölti! Ezzel garantálja,
hogy neked, és mindenki másnak a legfrissebb adatok állnak rendelkezésre. Ezt letilthatod, ha a
menüben a helyi fájl használatát választod, vagy a userscript kiegészitődnél nem engeded meg
ezeket a kéréseket továbbítani. Ez alapból engedélyezve van,</b>
<center>
<h3>Tartalomjegyzék</h3>
</center>
<hr>
<ul>
<li>
<b>Használat</b> - Ez szuper fontos, elsőnek olvasd el
</li>
<li>
<b>Eddigi teszt kérdések</b> - Itt elérhető az eddigi összes ismert teszt
kérdés-válaszai
</li>
<li>
<b>Beüzemelés (online)</b> - Beüzemelés, online verzió
</li>
<li>
<b>Beüzemelés (helyi)</b> - Beüzemelés, helyi fájlos verizó
</li>
<li>
<b>Több tárgy hozzáadása</b> - Ez csak helyi fájlos verziónál kell, de akkor
fontos
</li>
<li>
<b>Beolvasott kérdések struktúrája</b> - Ha bármikor (neten, vagy helyi fájlon)
változtatni akarsz, akkor illik tudni
</li>
<li>
<b>Gyakran előforduló kérdések</b> - Ha itt nincs kérdésed, akkor <a
href="http://questionmining.tk">itt alul</a> tedd fel!
</li>
<li>
<b>Adat egyszerűsítés</b> - Ha túl sok egyforma kérdésed van ;)
</li>
<li>
<b>Other stuff</b>
</li>
</ul>
<center>
<h3>Használat</h3>
</center>
<hr>
<table style="table-layout:fixed;vertical-align:top;width:100%">
<td>
</p> Ha először használod, olvasd el a lenti beüzemelés részt.
</p> Ha másodszor, és tesztet akarsz megoldani, akkor először nézd meg a menüben, hogy aktív-e a
tárgyad. Teszt közben a script a megadott tárgy már lementett kérdéseiből próbál segíteni.
</p>
<b>Teszt végén teendők ha helyi fájlban vannak az adatjaid:</b> Ha egy teszt végére
értél, akkor megjelenik a megoldásos oldal, ahol minden kérdés fel van sorolva. Itt a
script szépen öszegyűjti a kérdés/válasz kombókat, aztán feldob egy ablakot, amire
kattintva ezt megjeleníti. Az ott megjelenített kérdéseket be kell másolnod a .txt-be, a
megfelelő tárgy után (+tárgynév...). Userscript nem tud fájlba írni.
</p>
</p> Teszt közben még több dolog történhet:
</p>
<ul>
<li><b>Nem jó kérdésre ad választ a script:</b> Ilyenkor az van, hogy nincs meg a kérdés a
txt-ben, vagy több hasonló kéréds/válasz van. Ilyenkor a jobbra/balra gombal váltogathatsz
azok a kérdés/válasz kombók közül, amit talált a script</li>
<li><b>Több teszt kérdés van egy odalon:</b> Fel le gombal váltogathatsz a kérdések között.
Ilyenkor is működik az előbb említett funkció. Az indexek, amit kiír a bal felső sarokban:
aktuális kérdés száma / aktuális találat száma.</li>
<li><b>Nem jelenik meg semmi, vagy nem működik a script:</b> Megesik az ilyesmi. Ekkor
megnyithatd a kérdések filet, és oldschool CTRL-F el keresgethetsz. Na, azért még mindég
jobb mint a semmi!</li>
</ul>
</p> A script radiobuttonos, tickboxos, képes és szöveges kérdéseknél is jól működik. Egyéb
típusú kérdésekre nincsen (nagyon) felkészítve.
</p> Érdemes az éppen nem használt tárgyakat nem-bepipálni, mert akkor baromi sok kérdés
közül kell keresni, és az előfordulhat, hogy lassú.
</p> Egyéb funkciók:
<ul>
<li>
Ha esetleg videókat nézel, akkor spacel lehet play/pausolni, és jobra/balra
gombbal ugrani a videóban.
</li>
<li>
Menüben el lehet rejteni a kérdéseket a felugró ablakról, így az
kisebb helyet foglal, de így nem bírod ellenőrizni, hogy tényleg jó kérdés/választ talált-e.
</li>
<li>
Ugyanitt az üdvözlő üzenetet is el lehet rejteni. Ez frissítésnél vagy hibánál ígyis
úgyis megjelenik, mert azok nagyából fontosak.
</li>
<li>
Ha bármikor nem kell a scirpt, simán kapcsold ki tampermonkeyban. Ha
bármiért is el akarod tüntetni a következő oldalig az éppen megjelenő script ablakot, akkor
középső egérgombal kattintva rajta ezt megteheted.
</li>
</ul>
<h3>TL; DR:</h3>
Olvasd csak el. Az öszes bonyodalom abból adódik, hogy a tampermonkey API-je korlátozott, és
néhány dolgot neked kell megcsinálni, megérteni. Ha az online kérdéseket használod, akkor nagy
eséllyel semmi teendőd, de azért jó ha tudod hogy működik, ha esetleg valami elromlik teszt
közben, tudd hogy lehet megcsinálni gyorsan. <b> Legyen mindég nálad egy másolat az online
kérdésekről, mert bármikor eltűnhet!</b>
</td>
<td width=20%>
<img src="img/rtfm.jpg" alt="img"/>
</td>
</table>
<center>
<h3>Eddigi teszt kérdések:</h3>
</center>
<hr>
<a target="_blank" href="http://questionmining.tk/"><b>Eddigi összes kérdés</b></a> Használat:
Másold be a saját fájlodba. Ha csak egy tárgyé kell, akkor vedd ki a pipát a scirpt UI-nál, vagy
töröld ki a fájlból azt a részt. Csak akkor kell, ha helyi adatokat akarsz használni <b>Viszont
kifejezetten ajánlott ezeket még ekkor is lementeni, mivel nincs garancia a szerver folyamatos
működésére!</b>
<table style="table-layout:fixed;width:100%">
<td style="vertical-align:top">
<center>
<h3>Beüzemelés (online)</h3>
</center>
<hr>
</p> 1.5-ben bekerült egy új feature, ez pedig az, hogy szervertől szedi a kérdéseket a script.
Elküldött, és letöltött adatokról lentebb tudsz olvasni. 3 opció elérhető, amit a menüben lehet
álligatni:
<ul>
<li>
</p> Helyi fájlból: a script a forráskódban általad megatodd útvonalon
található fájlból olvassa be a kérdéseket, és ott keres. A tesztek végén mindég be kell
másolnod az új kérdéseket. Erről a következő szekció mesél többet
</li>
<li>
Neteről: interneten hostolt adatbázis letöltése, és használata. Mindkét verzióhoz
azonnal feltölti az éppen megoldott tesztek kérdés-válaszait, ezért azonnal látnod
kell(ene) azokat.
<ul>
<li>
Karbantartott: Ez garantáltan működik, válogatott kérdések vannak benne. Viszont
nem a legfrissebb.
</li>
<li>
Szabadon szerkeszthető: Legfrisebb kérdések. Ezt bárki szerkesztheti, nem csak
jó szándékból!
</li>
</ul>
</li>
</ul>
<h5>A weboldal működése: </h5>
Egyik oldalon egy szerkeszthető textbox található (bal). Ez a nem karbantartott adat. Ezt bárki
szerkesztheti, és azonnal életbe lép minden változtatás, szóval óvatosan. Elvileg ellenőrzi,
hogy helyes-e a bevitt adat, de ez nem bomba biztos. Másik oldaloni (jobb) egy read-only, stabil
adatbázis van, ami manuálisan van karban tartva, és biztosan működik. </p> Ha online adatokat
használsz, akkor a tesztek végén automatikusan el lesznek küldve az új kérdések, és hozzá
lesznek adva a nyílt végére. Így azonnal frissül neked, és másoknak is az adatbázis. Ezért nem
válalok felelősséget, és hibák is lehetnek benne. Ezeket nyugodtan kijavíthatod. Időnként ezek
bekerülnek a stabilba. <b>Ajánlott ezeket lementeni, mivel nincs garancia a szerver folyamatos
működésére!</b> Legalul egy textbox van, ahol minden lelki
bánatodat elküldheted.
</td>
<td style="vertical-align:top">
<center>
<h3>Beüzemelés (helyi adatokkal)</h3>
</center>
<hr>
</p>
<b>Ha netről használod a kérdéseket, akkor ezt a részt kiskippelheted. De csak ezt</b>
</p>Ezt minden frissítésnél el kell játszanod, mert az egész script (beleértve az elérési
utadat) felülíródik. Frissítés után a 3. pontot ismételd.
<ul>
<li>
<b>1. :</b>
<a target="_blank"
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help">Greasyfork</a>-ról
telepítsd a scriptet. Ha ezt látod, akkor ez nagy esélyel sikerült.
</p>
<b>2. :</b>
<ul>
<li><b>a/</b> Ha van kérdés adatbázisod. Ugorj a 3.-as pontra.
</li>
</p>
<li><b>b/</b> Ha nincs kérdés adatbázisod. Hozz létre egy üres .txt-filet, vagy
fentebb az Eddigi kérdések pontnál tölts le párat. Inditásnál ha üres a file, akkor
hibát jelez, de miután feltöltöd nem kellene. Ha több tárgyat szeretnél használni,
akkor feltétlen olvasd el az ez alatti útmutatót!
</li>
</ul>
</li>
<li>
<b>3. :</b> Nyisd meg a tampermonkey-d. Böngésző jobbfelsősarkánál nagy esélyel van
tampermonkey ikon. Katt, majd dashboard. Ott fel lesz sorolva egy pár script. Válaszd ki
az Elektro help-et.
</br> Rögtön az elején látsz csomó cuccot.// ==UserScript== meg @name meg ilyesmi.
Keresd meg a @resource taget.
</br> Most jön a .txt-d. Az elérési útját másold be, hogy nagyából hasonló legyen:
</br>
</p> // @resource data file:///D:/OE/Elektronika/Elektro%20All%20ELearning.txt
</p> Ide másold be a sima elérési utat, majd convert! Ezután az eredményt
bemásolhatod a @resouce taghoz. kiterjesztésről (.txt) ne feledkezz meg ;)
<input style="width:60%;" type="text" id="tex" /><button onclick="conv()"> Convert!
</button><br> Másik jó megoldás, hogy a fájlodat megnyitod böngészöben, és az url-jét
másolod be a script fejlécébe.
</li>
</p>
<li>
<b>4. :</b> Kész! Mentsd el, és hf. Nagy esélyel először hibával fogsz találkozni.
Dont worry! A Hibák részben pont ezt fogom leírni.
</li>
</ul>
<center>
<h3>Több tárgy kérdéseinek használata helyi adatokkal: (1.2)</h3>
</center>
<hr>
</br> Röviden: Kérdések +tárgynév sorral elválasztva külön tárgynak számítanak
</p> Hosszabban: Vegyük például, hogy Elektornika, és Jazz kérdésekre szeretnéd használni a
scriptet. Ekkor a .txt-d két részre lesz fel osztva a következő módon: Első sora: "+Elektró
(moodle)". Ez a neve annak a tárgynak, amihez a sor után következő kérdések tartoznak,
mindaddíg, amíg egy másik "+" kezdetű sor nem következik. Ha ez történik, akkor meg kell adnod a
következő tárgy nevét, ez esetben: "+Jazz (kmooc). Ebből tudja a script, hogy ez egy másik
tárgy. Minden kmooc és moodle oldalon megjelenik egy Menü a jobb alsó sarokban, amire kattintva
ki bírod választani, hogy mely tárgy legyen aktív. Ha valamely tárgy aktív, akkor a script a
tárgy kérdései közül fogja keresni a választ az aktuális kérdésre. Ha egy sincs bejelölve, akkor
nem lesz találta soha.
</p>
A jobb alsó sarokban 1.2 óta található egy menü gomb. Ha rákattintasz, akkor megjelenik egy
új ablak az oldal közepefele. Ezt be tudod zárni, vagy a listázott tárgyakat tudod
aktiválni/inaktiválni. Ha egy tárgy aktív, akkor annak a kérdés-válaszai között keres a
script választ az aktuális kérdésre.
</td>
</table>
<center>
<h3>Beolvasott kérdések struktúrája</h3>
</center>
<hr>
</p> A .txt-ben "?" jelöli a kérdést, "!" a választ, ">" a kérdéshez tartozó képneveket (ez
optimális) és "+" a tárgy nevét. Ami más karakterrel kezdődik, és kérdés előtt van, az
figyelmen kívül van hagyva, <b>egyéb helyen hibát eredményezhet egy ismeretlen sor!</b> Ha új
tárgyat szeretnél hozzáadni, egyszerűen másold be az aljára a kérdéseket sorban, egy új
+[tárgynév]-el kezdődő sor után. <b>Ha online adatokat szerkesztesz, akkor ezt érdemes tudni,
küldönben elronthatod!</b>
<center>
<h3>Gyakran előforduló kérdések</h3>
</center>
<hr>
<ul>
<li>
<b>1. Mindent megcsináltam, mégsem hajlandó beolvasni a fájlt</b>
</br> Ha netről szeded a kérdéseket, akkor nem online a webszerver, vagy éppen nem aktív
a tárgyad a menüben. Jobb alsó sarokban lévő 'M' gombra kattintva fel kell ugorjon egy
menü, és ott az éppen megoldani kívánt tárgy melett ki kell hogy legyen pipálva a
tickbox.
</br> Helyi fájl használata: Ha (tényleg) rendesen bemásoltad a @resource-hoz az elérési
utat, és még mindég nem működik: A böngésződ nem éri el a file-t. Chrome/Opera:
bővítményeknél engedélyezni kell a fájlelérést. (Allow acces to file URLs
bővítményeknél) Firefoxnál csak a tampermonkey-nél kell álligatni más böngészőt
meg nem ismerek. Ezután Tampermonkey beállítása, hogy használja a @resource-ot: Klikk az
ikonra böngésződnél, majd dashboard -> Settings tab -> "Config mode: " Advanced. Ezután
meg kell jelennie egy olyan részlegnek, hogy "Security" (ha nem frissítsd az oldalt).
Ott : "Allow scripts to access local files" -> "Externals (@require and @resource) Ha
üres a txt-d, akkor még hibát fog jelezni, de amint első kérdésekkel feltöltöd jónak
kellene lennie. Ha mégsem, akkor F12-> console -> és ott van egy pár log, ami hátha
segít.
</li>
</p>
<li>
<b>2. Egyik kérdésre sincs válasz / előző fix után sem olvassa be a fájlt</b>
</br> UTF-8-as kódolással mentsd a txt-det! Ha frissítés volt, akkor újra be kell írnod
a txt elérési útját. Ha a beírt elérési utat a böngésző címsorába bemáslva nem nyílik
meg, akkor elírtad, ha igen, akkor próbálkozz másik böngészővel
</li>
</p>
<li>
<b>3. Az első tárgy nevét NONAME-nek írja, pedig megadtam +-al a nevét</b>
</br> A szöveges fájlod első sorába írj be valamit. Vagy csak rakj egy entert. Script
minden sort figyelmen kívül hagy, ami nem a következő karakterekkel kezdődik: + ? ! >.
Néha ha olyan kedve van nem sokszor olvassa be az első sort.
</li>
</p>
<li>
<b>4. Olyan helyeken fut le a script, ahol nem kellene, vagy zavar</b>
</br> Tampermonkey bővitmény ikon -> click -> scriptet kapcsold ki. Csak ne felejtsd
visszakapcsolni ;)
</li>
</p>
<li>
<b>5. Túl nagy a kérdést és a választ megjelenítő ablak, nem tudok a válaszra kattintani</b>
</br> Zommolj ki egy kicsit, vagy kapcsold ki addig a scriptet. Továbbá középső
egérgombra kattintva rá el bírod tüntetni az ablakot, amíg újra nem töltöd az oldalt,
vagy másikra ugrasz.
</li>
</p>
<li>
<b>6. Online adatokat használok, de a script hibát jelez</b>
</br> Ennek több oka is lehet:
<ul>
<li>Nem engedélyezted az http requestek küldését a usercript menedzselő
programodnál. Ez nélkül nem működik.</li>
<li>Nem elérhető a szerver. Ezt ellenőrizheted: <a
href="http://questionmining.tk/">link</a></li>
<li>Nincs kiválasztva a megoldani kívánt tárgy a menüben.</li>
</ul>
</li>
</p>
<li>
Egyéb:<br><a target="_blank"
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script
Feedback</a> vagy <a target="_blank" href="http://questionmining.tk/">észrevétel.</a>
</li>
</p> Ha végleg nem akar működni egy újfajta kérdésnél, vagy tetsz felénél meghal, akkor még
mindég használhatod a txt-t, amiben az addig lementett kérdések vannak. (CTRL + F) A kritikus hibák
consolra ki vannak írva, amit f12 megnyitásával tudsz előhozni (chrome/firefox (dev console))
</ul>
<center>
<h3>Adat egyszerűsítés</h3>
</center>
<hr> Másold be ide az egész txt-d, és ez kiszedi belőle az ugyanolyan kérdéseket, illetve ha
hibás részeket talál, akkor kikommenteli. Érdemes megnézni, hogy történt-e ilyen, keress rá a
kész szövegben a "#"-karakterre. Ezzel azért óvatosan, ez kipusztithatja a szobanövényed.
<textarea id="converter"></textarea>
<button onclick="simplify()">Egyszerűsítés</button>
<hr> Jogosultságok:
</br>GM_openInTab: help megnyitása új lapon, GM_xmlhttpRequest: online adatbázishoz.
GM_getResourceText: a txt beolvasáshoz. Mást nem bír beolvasni, csak amit megadsz a @resouces
tagnál. GM_info: a scriptről információ, a verzióváltozás érzékeléséhez. GM_getValue/
GM_setValue: oldal bezárásakor megmaradó változók kezelése. Előző verzió tárolására, ugyanúgy
verzióváltozás érzékeléséhez, néhány beállítás, illetve hogy melyik tárgyakból keressen
kérdéseket. Ezek függvények, és a sciptben néhol meg vannak hívva, keresd meg.
</p> Elküldött adatok online módban: Minden teszt végén az összes kérdés, és rá a moodle szerint
helyesnek vélt válaszok. Fogadott adatok: az összes eddig ismert moodle kérdés
<hr>
<center>
<h1>
<a target="_blank"
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help">Script
Greasyforkon</a>
|
<a target="_blank"
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script
Feedback</a>
|
<a target="_blank" href="http://questionmining.tk/">Weboldal</a>
</h1>
</p>
<img src="img/thanks.png" alt="img"/>
</center>
<script>
function conv() {
var a = document.getElementById("tex").value;
a = a.replace(/ /g, "%20");
a = a.replace(/\\/g, "");
if (!a.includes(".txt")) {
a += ".txt";
}
document.getElementById("tex").value = "// @resource data file:///" + a;
}
function simplify() {
var splitData = document.getElementById("converter").value.split("\n");
var result = [];
var jumped = 0;
var doubles = 0;
for (var i = 0; i < splitData.length; i += jumped) {
splitData[i] = splitData[i].trim();
jumped = 0;
var currQuestion = {
q: splitData[i],
a: splitData[i + 1],
i: splitData[i + 2]
};
if (currQuestion.q != undefined && currQuestion.q[0] == "?" && currQuestion.a != undefined &&
currQuestion.a[0] == "!") {
jumped += 2;
}
if (currQuestion.i != undefined && currQuestion.i[0] == ">" && jumped == 2) {
jumped++;
} else {
delete currQuestion.i;
}
if (jumped > 1) {
for (var j = 0; j < result.length; j++) {
if (result[j].q) {
if (result[j].q == currQuestion.q && result[j].a == currQuestion.a) {
if (result[j].i && currQuestion.i) {
if (result[j].i == currQuestion.i) {
break;
}
} else {
break;
}
}
}
}
if (j >= result.length) {
result.push(currQuestion);
} else {
doubles++;
}
}
if (currQuestion.q[0] == "+") {
result.push({
n: currQuestion.q
});
jumped++;
} else if (jumped < 1) {
var comment = currQuestion.q;
if (comment[0] != "#") {
comment = "#" + comment;
}
result.push({
c: comment
});
jumped++;
}
}
var textResult = "";
for (var i = 0; i < result.length; i++) {
if (result[i].q != undefined && result[i].a != undefined) {
textResult += result[i].q + "\n";
textResult += result[i].a + "\n";
}
if (result[i].i != undefined) {
textResult += result[i].i + "\n";
}
if (result[i].c != undefined) {
textResult += result[i].c + "\n";
}
if (result[i].n != undefined) {
textResult += result[i].n + "\n";
}
}
alert(doubles + " duplikáció eltávolítva, és hibás kérdések kikommentelve.");
document.getElementById("converter").value = textResult;
}
</script>
</html>
</body>