Added old.js, logging imporvements, manual refractor

This commit is contained in:
MrFry 2019-10-07 18:14:28 +02:00
parent 5c8707f220
commit b4b0a8322c
4 changed files with 81 additions and 196 deletions

42
modules/old.js Normal file
View file

@ -0,0 +1,42 @@
/* ----------------------------------------------------------------------------
Question Server
GitLab: <https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
------------------------------------------------------------------------- */
const express = require('express')
const app = express()
const logger = require('../utils/logger.js')
// --------------------------------------------------------------
app.get('/', function (req, res) {
res.redirect('https://qmining.frylabs.net' + req.url)
})
app.get('*', function (req, res) {
res.redirect('https://qmining.frylabs.net' + req.url)
})
app.post('*', function (req, res) {
res.redirect('https://qmining.frylabs.net' + req.url)
})
exports.app = app
logger.Log('Old module started', logger.GetColor('yellow'))

View file

@ -36,7 +36,7 @@ const qmining = require('./modules/qmining.js').app
const main = require('./modules/main.js').app const main = require('./modules/main.js').app
const sio = require('./modules/sio.js').app const sio = require('./modules/sio.js').app
const stuff = require('./modules/stuff.js').app const stuff = require('./modules/stuff.js').app
const local = require('./modules/local.js').app const old = require('./modules/old.js').app
const locLogFile = './stats/logs' const locLogFile = './stats/logs'
const allLogFile = '/nlogs/log' const allLogFile = '/nlogs/log'
@ -107,10 +107,9 @@ app.use(vhost('qmining.frylabs.net', qmining))
app.use(vhost('sio.frylabs.net', sio)) app.use(vhost('sio.frylabs.net', sio))
app.use(vhost('stuff.frylabs.net', stuff)) app.use(vhost('stuff.frylabs.net', stuff))
app.use(vhost('frylabs.net', main)) app.use(vhost('frylabs.net', main))
app.use(vhost('qmining.tk', qmining))
app.use(vhost('*.*', local))
app.use(vhost('192.168.0.2', local))
app.use(vhost('qmining.tk', old))
app.use(vhost('www.qmining.tk', old))
logger.Log('Node version: ' + process.version) logger.Log('Node version: ' + process.version)
logger.Log('Listening on port: ' + port) logger.Log('Listening on port: ' + port)

View file

@ -62,15 +62,12 @@ function LogReq (req, toFile, sc) {
try { try {
let ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress let ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
let rColor = GetRandomColor(ip) let logEntry = C(GetRandomColor(ip)) + ip + C()
let logEntry = C(rColor) + ip + C()
let color = 'green'
if (req.url.includes('lred')) { if (req.url.includes('lred')) {
color = 'red' logEntry += C('red')
} }
logEntry += C(color) + DELIM + req.hostname + DELIM + req.headers['user-agent'] + DELIM + req.method + DELIM logEntry += DELIM + req.hostname + DELIM + req.headers['user-agent'] + DELIM + req.method + DELIM
logEntry += req.url logEntry += req.url
@ -99,6 +96,8 @@ function GetRandomColor (ip) {
let res = ip.split('').reduce((res, x) => { let res = ip.split('').reduce((res, x) => {
if (!isNaN(x)) { if (!isNaN(x)) {
return res + parseInt(x) return res + parseInt(x)
} else {
return res
} }
}, 0) }, 0)
return colors[res % colors.length] return colors[res % colors.length]

View file

@ -35,20 +35,18 @@
sokszor jó viszonyítás, de semmi sem biztos! Bármikor előfordulhat, hogy nem jó a 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ősségedre használd!</b> Sok kikerülhetetlen megjelenített válasz! Ezért csak saját felelősségedre használd!</b> Sok kikerülhetetlen
hibalehetőség van, amit egyszerű nem lehet scriptben lekezelni (Pl rosszul megadott kérdés 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 tanár részéről). Kézzel is lehet keresni a elmentett kérdések között. Ezért mindig
legyen egy letöltött verziód a kérdésekről, mert nem 100% hogy mindég elérhető a szerver! 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 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 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 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://qmining.tk">Script Feedback</a> (ezt esetén : <a target="_blank" href="https://qmining.frylabs.net">Script Feedback</a> (ezt
gyakran még aznap megnézem. gyakran még aznap megnézem.
</p> </p>
</p> </p>
<b>Továbbá ez a userscript HTTP requestekket küldhet egy szerver felé (ha ezt engedélyezed), <b>Továbbá ez a userscript HTTP requestekket küldhet egy szerver felé, ahova az összes megoldott
ahova az összes megoldott tesztjeid kérdéseit és (helyes)válaszait feltölti! Ezzel garantálja, tesztjeid kérdéseit és (helyes)válaszait feltölti! Ezzel garantálja, hogy neked, és mindenki
hogy neked, és mindenki másnak a legfrissebb adatok állnak rendelkezésre. Ezt letilthatod, ha a másnak a legfrissebb adatok állnak rendelkezésre.</b>
menüben a helyi fájl használatát választod, vagy a userscript kiegészítőknél nem engeded meg
ezeket a kéréseket továbbítani. Ez alapból engedélyezve van,</b>
<center> <center>
<% include aludni.ejs %> <% include aludni.ejs %>
@ -65,22 +63,11 @@
kérdés-válaszai kérdés-válaszai
</li> </li>
<li> <li>
<b>Beüzemelés (online)</b> - Beüzemelés, online verzió <b>Beüzemelés</b> - Beüzemelés
</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>
<li> <li>
<b>Gyakran előforduló kérdések</b> - Ha itt nincs kérdésed, akkor <a <b>Gyakran előforduló kérdések</b> - Ha itt nincs kérdésed, akkor <a
href="http://qmining.tk">itt alul</a> tedd fel! href="http://qmining.frylabs.net">itt alul</a> tedd fel!
</li> </li>
<li> <li>
<b>Adat egyszerűsítés</b> - Ha túl sok egyforma kérdésed van ;) <b>Adat egyszerűsítés</b> - Ha túl sok egyforma kérdésed van ;)
@ -146,10 +133,10 @@ változtatni akarsz, akkor illik tudni
<h3>TL; DR:</h3> <h3>TL; DR:</h3>
Olvasd csak el. Az összes bonyodalom abból adódik, hogy a tampermonkey API-je korlátozott, és Olvasd csak el. Az összes bonyodalom abból adódik, hogy a tampermonkey API-je
néhány dolgot neked kell megcsinálni, megérteni. Ha az online kérdéseket használod, akkor nagy korlátozott, és néhány dolgot neked kell megcsinálni, megérteni. Nagy eséllyel semmi
eséllyel semmi teendőd, de azért jó ha tudod hogy működik, ha esetleg valami elromlik teszt teendőd, de azért jó ha tudod hogy működik, ha esetleg valami elromlik teszt közben,
közben, tudd hogy lehet megcsinálni gyorsan. <b> Legyen mindég nálad egy másolat az online 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> kérdésekről, mert bármikor eltűnhet!</b>
</td> </td>
@ -161,192 +148,50 @@ változtatni akarsz, akkor illik tudni
<h3>Eddigi teszt kérdések:</h3> <h3>Eddigi teszt kérdések:</h3>
</center> </center>
<hr> <hr>
<a target="_blank" href="http://qmining.tk/legacy"><b>Eddigi összes kérdés</b></a> Használat: Ha <a target="_blank" href="http://qmining.frylabs.net/legacy"><b>Eddigi összes kérdés</b></a>
régi módszerrel fájlból olvasod be a kérdéseket, akkor abba kell bemásolni az egészet. Továbbá Továbbá ez még arra jó, hogy ha valamiért bugos a script, akkor itt tudsz ctrl-f el nézegetni,
ez még arra jó, hogy ha valamiért bugos a script, akkor itt tudsz ctrl-f el nézegetni, vagy ha vagy ha lemented az összes kérdést, akkor még akkor is biztonságban vagy, ha netán leáll a
lemented az összes kérdést, akkor még akkor is biztonságban vagy, ha netán leáll a szerver, vagy szerver, vagy elmegy a neted. Bár úgy nehezen moodlezel, de mind1
elmegy a neted. Bár úgy nehezen moodlezel, de mind1
<table style="table-layout:fixed;width:100%">
<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.
</p>Kérdés fájl lehet json vagy saját formátumban (amit később írok le). De vegyes nem lehet!
<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éllyel 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. Indítá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ő jobb felesősarkánál nagy eséllyel van
tampermonkey ikon. Katt, majd dashboard. Ott fel lesz sorolva egy pár script. Válaszd ki
az Moodle helper-t.
</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 nagyjá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.
</br> Ez csak windowson jó, ha netán Mac-et vagy GNU/Linux-ot használsz akkor írj
feedback-et az oldalon, és leírom hogy kell.
</li>
</p>
<li>
<b>4. :</b> Kész! Mentsd el, és hf. Nagy eséllyel először hibával fogsz találkozni.
Dont worry! A Hibák részben pont ezt fogom leírni.
</p>
<b>Teszt végén teendők ha helyi fájlban vannak az adataid:</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 összegyűjti a kérdés/válasz combó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.
</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.
<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ülönben elronthatod!</b>
</td>
<td style="vertical-align:top">
<center> <center>
<h3>Beüzemelés (online)</h3> <h3>Beüzemelés (online)</h3>
</center> </center>
<hr> <hr>
</p> 1.5-ben bekerült egy új feature, ez pedig az, hogy szervertől szedi a kérdéseket a script. </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. 2 opció elérhető, amit a menüben lehet Elküldött, és letöltött adatokról lentebb tudsz olvasni. Így azonnal feltölti az éppen megoldott
állítgatni: tesztek kérdés-válaszait, ezért azonnal látnod kell(ene) azokat.
<ul>
<li>
</p> Helyi fájlból: a script a forráskódban általad megadott ú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>
Netről: interneten hostolt adatbázis letöltése, és használata. Azonnal feltölti az
éppen megoldott tesztek kérdés-válaszait, ezért azonnal látnod kell(ene) azokat.
</li>
</ul>
</td>
</table>
<center> <center>
<h3>Gyakran előforduló kérdések</h3> <h3>Gyakran előforduló kérdések</h3>
</center> </center>
<hr> <hr>
<ul> <ul>
<li> <li>
<b>1. Mindent megcsináltam, mégsem hajlandó beolvasni a fájlt</b> <b>1. Olyan helyeken fut le a script, ahol nem kellene, vagy zavar</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 mellett 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 állítgatni 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 </br> Tampermonkey bővitmény ikon -> click -> scriptet kapcsold ki. Csak ne felejtsd
visszakapcsolni ;) Meg passzív módot is bekapcsolhatod a menü gomb alatt. visszakapcsolni ;) Meg passzív módot is bekapcsolhatod a menü gomb alatt.
</li> </li>
</p> </p>
<li> <li>
<b>5. Túl nagy a kérdést és a választ megjelenítő ablak, nem tudok a válaszra kattintani</b> <b>2. 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ő </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, egérgombra kattintva rá el bírod tüntetni az ablakot, amíg újra nem töltöd az oldalt,
vagy másikra ugrasz. vagy másikra ugrasz.
</li> </li>
</p> </p>
<li> <li>
<b>6. Online adatokat használok, de a script hibát jelez</b> <b>3. Online adatokat használok, de a script hibát jelez</b>
</br> Ennek több oka is lehet: </br> Ennek több oka is lehet:
<ul> <ul>
<li>Nem engedélyezted az http requestek küldését a usercript menedzselő <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> programodnál. Ez nélkül nem működik.</li>
<li>Nem elérhető a szerver. Ezt ellenőrizheted: <a <li>Nem elérhető a szerver. Ezt ellenőrizheted: <a
href="http://qmining.tk/">link</a></li> href="http://qmining.frylabs.net/">link</a></li>
<li>Nincs kiválasztva a megoldani kívánt tárgy a menüben.</li> <li>Nincs kiválasztva a megoldani kívánt tárgy a menüben.</li>
</ul> </ul>
</li> </li>
<li> <li>
<b>7. Mi ez a ... ?</b> <b>4. Mi ez a ... ?</b>
</br> </br>
<img height=40% src="img/imgq.jpg" alt="img"/> <img height=40% src="img/imgq.jpg" alt="img"/>
@ -355,8 +200,8 @@ változtatni akarsz, akkor illik tudni
<li> <li>
Egyéb:<br><a target="_blank" Egyéb:<br><a target="_blank"
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script
Feedback</a> vagy <a target="_blank" href="http://qmining.tk/">észrevétel</a> vagy <a Feedback</a> vagy <a target="_blank" href="http://qmining.frylabs.net/">észrevétel</a> vagy <a
target="_blank" href="http://qmining.tk/irc">IRC.</a> target="_blank" href="http://qmining.frylabs.net/irc">IRC.</a>
</li> </li>
</ul> </ul>
<hr> Jogosultságok: <hr> Jogosultságok:
@ -379,7 +224,7 @@ változtatni akarsz, akkor illik tudni
href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script href="https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help/feedback">Script
Feedback</a> Feedback</a>
| |
<a target="_blank" href="http://qmining.tk/">Weboldal</a> <a target="_blank" href="http://qmining.frylabs.net/">Weboldal</a>
</h1> </h1>
</center> </center>
<script> <script>