Manuals update / refactor

This commit is contained in:
mrfry 2021-05-15 11:12:54 +02:00
parent a01761e729
commit 7ee8c376fa
4 changed files with 214 additions and 83 deletions

View file

@ -54,12 +54,12 @@ export default function contribute() {
<hr /> <hr />
<Todos /> <Todos />
<hr /> <hr />
<div className={styles.gitRepos}> <div id={'gitrepo'} className={styles.gitRepos}>
<div> <div>
<div className={'subtitle'}> <div className={'subtitle'}>
<b>Git repos</b> <b>Git repos</b>
</div> </div>
<div id={'gitrepo'}> <div>
{Object.keys(repos.repos).map((key) => { {Object.keys(repos.repos).map((key) => {
let repo = repos.repos[key] let repo = repos.repos[key]
return ( return (

View file

@ -3,6 +3,9 @@ import Link from 'next/link'
import Head from 'next/head' import Head from 'next/head'
import constants from '../constants.json'
import styles from './faq.module.css'
function PasswordSection() { function PasswordSection() {
return ( return (
<> <>
@ -15,7 +18,7 @@ function PasswordSection() {
<li>Minden felhasználónak más jelszava van.</li> <li>Minden felhasználónak más jelszava van.</li>
<li> <li>
Elvileg elég csak 1 szer beírnod, és többet nem kell, de{' '} Elvileg elég csak 1 szer beírnod, és többet nem kell, de{' '}
<b>mentsd le biztos helyre a jelszót, hogy később is meglegyen</b>! <i>mentsd le biztos helyre a jelszót, hogy később is meglegyen</i>!
Ha többször kell megadnod, akkor az bug lesz. Ilyenkor ezt{' '} Ha többször kell megadnod, akkor az bug lesz. Ilyenkor ezt{' '}
<a <a
href="http://qmining.frylabs.net/feedback?man" href="http://qmining.frylabs.net/feedback?man"
@ -33,7 +36,7 @@ function PasswordSection() {
</i> </i>
</li> </li>
<li> <li>
Ha van jelszavad akkor <b>bizonyos határok között</b> te is{' '} Ha van jelszavad akkor <i>bizonyos határok között</i> te is{' '}
<a <a
href="https://qmining.frylabs.net/pwRequest?man" href="https://qmining.frylabs.net/pwRequest?man"
target="_blank" target="_blank"
@ -44,9 +47,9 @@ function PasswordSection() {
másoknak (ncore style). másoknak (ncore style).
</li> </li>
<li> <li>
Saját jelszavadat ne oszd meg, mivel egyszerre egy helyen lehetsz Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott helyen
belépve, máshol automatikusan ki leszel jelentkeztetve. (meg minek, lehetsz belépve, máshol automatikusan ki leszel jelentkeztetve. (meg
ha tudsz adni másoknak az előző pont alapján) minek, ha tudsz adni másoknak az előző pont alapján)
</li> </li>
<li> <li>
Mivel senkinek sincs felhasználóneve, csak egy UserID (amit bal alul Mivel senkinek sincs felhasználóneve, csak egy UserID (amit bal alul
@ -66,33 +69,78 @@ function FAQSection() {
<ul> <ul>
<li> <li>
<b> <b>
Olyan helyeken fut le a script, ahol nem kellene, vagy Hogy kell a scriptet telepíteni, milyen oldalakon működik és hogy
ideiglenesen ki akarod kapcsolni; működik?
</b> </b>
<br /> <Link href="/script">
<i> <a>Ezen az oldalon van leírva</a>
Tampermonkey bővitmény ikon -{'>'} click -{'>'} a scriptet </Link>{' '}
kapcsold ki. Csak ne felejtsd el visszakapcsolni ;) </li>
</i> <li>
<b>
Lehet-e valahol szerkeszteni, törölni, illetve manuálisan
hozzáadni a meglévő kéréseket?
</b>
Igen,{' '}
<a
href={`${constants.siteUrl}dataeditor`}
target="_blank"
rel="noreferrer"
>
ezen az oldalon
</a>{' '}
van lehetőség erre.
</li>
<li>
<b>
A teszt ellenőrző oldal nem elérhető. Ilyenkor lehet valamit
tenni, hogy mégis el legyenek mentve a válaszok?
</b>
A{' '}
<a
href={`${constants.siteUrl}dataeditor`}
target="_blank"
rel="noreferrer"
>
dataeditor
</a>{' '}
oldal erre is , a <i>Kitöltetlen tesztek</i> részhez a script
automatikusan feltölti a kérdéseket még megoldás közben. Ehhez nincs
lementve helyes válasz, de ezt te utólag bejelölheted, és
beküldheted.
</li>
<li>
<b>
Mennyire anonymus a weboldal/script, és kiderülhet-e hogy
használom?
</b>
A weboldal teljesen anonymus, mindenki csak egy számként van
nyilvántartva (ami a user ID), random generált uuidv4 jelszavak
vannak (így nicknevek sem kellenek), és még IP cím sincs sehol
letárolva szerver oldalon.
<br />
Több infó a kockázatok résznél ezen az oldalon.
</li>
<li>
<b>
Olyan helyeken fut le a script, ahol nem kellene, vagy
ideiglenesen ki akarom kapcsolni
</b>
Tampermonkey bővítmény ikon böngészőben -{'>'} click -{'>'} a
scriptet kapcsold ki. Csak ne felejtsd el visszakapcsolni ;)
</li> </li>
<br />
<li> <li>
<b> <b>
Túl nagy a kérdést és a választ megjelenítő ablak, nem tudok a Túl nagy a kérdést és a választ megjelenítő ablak, nem tudok a
válaszra kattintani; válaszra kattintani
</b> </b>
<br /> A felugró ablakot ha minden jól megy akkor a szélénél fogva tudod
<i> mozgatni, vagy egeret rajtatartva a görgővel tudod állítani az
A felugró ablakot ha minden jól megy akkor a szélénél fogva tudod áttetszőségét, vagy be tudod zárni jobb felül X-el, vagy egér
mozgatni, vagy egeret rajtatartva a görgővel tudod állítani az középső gombbal.
áttetszőségét, vagy be tudod zárni jobb felül X-el, vagy egér
középső gombbal.
</i>
</li> </li>
<br />
<li> <li>
<b>Gombok, %-ok, számok;</b> <b>Gombok, %-ok, számok</b>
<br />
<img className={'manual_img'} src="img/6.png" alt="img" /> <img className={'manual_img'} src="img/6.png" alt="img" />
</li> </li>
</ul> </ul>
@ -106,17 +154,21 @@ function RiskSection() {
<> <>
<ul> <ul>
<li> <li>
<b>Bármikor észrevehetik hogy használod a scriptet</b> <b>Bármikor észrevehetik hogy használod a scriptet</b>A weboldalt már
<br /> kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '}
A weboldalt már kevésbé, de úgy nem menti el a kérdéseket a script, <a
mert nem fut. Később manuálisan is be lehet majd küldeni href={`${constants.siteUrl}dataeditor`}
kérdés-válaszokat. target="_blank"
rel="noreferrer"
>
Manuálisan is be lehet küldeni kérdés-válaszokat.
</a>
<p /> <p />
A script shadow-root hoz teszi hozzá az összes megjelenített A script shadow-root hoz teszi hozzá az összes megjelenített
elementet, így ezeket szinte lehetetlen detektálni. A moodle elementet, így ezeket szinte lehetetlen detektálni. A moodle
semmiféleképpen nem látja, hogy milyen más oldalak vannak megnyitva a semmiféleképpen nem látja, hogy milyen más oldalak vannak megnyitva a
böngésződben. Nem látja az XMLHttp requesteket se, amit a script böngésződben. Nem látja az XMLHttp requesteket se, amit a script
végez. Egy Matomo nevű script látja hogy milyen oldalarka navigálsz a végez. Egy Matomo nevű script látja hogy milyen oldalakra navigálsz a
moodle-ről, de a script nem linkekkel irányít át, hanem javascript moodle-ről, de a script nem linkekkel irányít át, hanem javascript
eseménnyel, amit nem tud nyomon követni. eseménnyel, amit nem tud nyomon követni.
<p /> <p />
@ -124,22 +176,37 @@ function RiskSection() {
</li> </li>
<li> <li>
<b>Bármikor leállhat a szerver</b> <b>Bármikor leállhat a szerver</b>
<br />
És akkor nem bírod megnézni a válaszokat. Erre van az{' '} És akkor nem bírod megnézni a válaszokat. Erre van az{' '}
<a <a
href="http://qmining.frylabs.net/allqr.txt?man" href="http://qmining.frylabs.net/allqr.txt?man"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
> >
{' '}
összes kérdés TXT összes kérdés TXT
</a> </a>
</li> </li>
<li> <li>
<b>Akármelyik válasz rossz lehet</b> <b>Akármelyik válasz rossz lehet</b>
<br />
Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ
</li> </li>
<li>
<b>
Ha esetleg {'"'}lebukik{'"'} a szerver, és személyes infók
</b>
Semmi személyes információ nincs eltárolva szerveren. Egyedüli
információ amit egyáltalán ki tudnék deríteni az amúgy is az IP címed,
de az nincs letárolva. Ha nagyon gonosz lennék, akkor a script el
tudná küldeni a neved és talán még 1-2 adatot a szervernek, de ezt nem
teszi.
<p />
Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '}
<Link href="/contribute#gitrepo">
<a>ezek repository-ja publikus</a>
</Link>{' '}
(contribute oldal alja), és akármikor felülvizsgálható. A script a te
böngésződben fut, tampermonkey bővítmény menüjében megtekinthető
milyen kód fut pontosan.
</li>
</ul> </ul>
</> </>
) )
@ -261,11 +328,11 @@ function AddSite() {
<img className={'manual_img'} src={`img/siteadd/3.png`} /> <img className={'manual_img'} src={`img/siteadd/3.png`} />
</li> </li>
<li> <li>
Itt az egyik <b>@require ...</b> sor után egy új sorban írd be az Itt az egyik <i>@require ...</i> sor után egy új sorban írd be az
egyetemed moodle oldalának címét. Ha ez a cím pl.:{' '} egyetemed moodle oldalának címét. Ha ez a cím pl.:{' '}
<b>https://moodle.egyetem.hu/main/akármi</b>, akkor a következőre írd <i>https://moodle.egyetem.hu/main/akármi</i>, akkor a következőre írd
át: <b>https://moodle.egyetem.hu/*</b>. Fenti képen látsz néhány át: <i>https://moodle.egyetem.hu/*</i>. Fenti képen látsz néhány
példát. <b>A {'"*"'} a végén fontos!</b> példát. <i>A {'"*"'} a végén fontos!</i>
</li> </li>
<li> <li>
Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól
@ -290,8 +357,8 @@ function AddSite() {
} }
const pages = { const pages = {
faq: { name: 'GYIK', component: FAQSection }, faq: { name: 'Vegyes általános kérdések', component: FAQSection },
pw: { name: 'Jelszavak', component: PasswordSection }, pw: { name: 'Infó jelszavakról', component: PasswordSection },
risk: { name: 'Kockázatok', component: RiskSection }, risk: { name: 'Kockázatok', component: RiskSection },
websitedl: { websitedl: {
name: 'Teszt közbeni hiba jelentése', name: 'Teszt közbeni hiba jelentése',
@ -302,7 +369,7 @@ const pages = {
component: ScriptReinstallSection, component: ScriptReinstallSection,
}, },
addsite: { addsite: {
name: 'Új oldalon tesztelés', name: 'Futtatás (még) nem támogatott oldalon',
component: AddSite, component: AddSite,
}, },
} }
@ -318,6 +385,12 @@ export default function FAQ({ router }) {
} }
} }
useEffect(() => {
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
shallow: true,
})
}, [])
useEffect(() => { useEffect(() => {
if (router.query.tab) { if (router.query.tab) {
setCurrPage(pages[router.query.tab]) setCurrPage(pages[router.query.tab])
@ -341,6 +414,12 @@ export default function FAQ({ router }) {
key={key} key={key}
onClick={() => { onClick={() => {
setCurrPage(page) setCurrPage(page)
router.replace(
`${router.pathname}?tab=${encodeURIComponent(key)}`,
undefined,
{ shallow: true }
)
}} }}
> >
{page.name} {page.name}
@ -349,7 +428,7 @@ export default function FAQ({ router }) {
})} })}
</div> </div>
<hr /> <hr />
{renderCurrPage(currPage)} <div className={styles.content}>{renderCurrPage(currPage)}</div>
<hr /> <hr />
</div> </div>
) )

View file

@ -1,12 +1,38 @@
import React from 'react' import React, { useState, useEffect } from 'react'
import Head from 'next/head' import Head from 'next/head'
import Link from 'next/link'
import constants from '../constants.json'
import ExternalLinkIcon from '../components/externalLinkIcon' import ExternalLinkIcon from '../components/externalLinkIcon'
import styles from './script.module.css'
function fetchSupportedSites(from) {
return new Promise((resolve) => {
fetch(`${constants.apiUrl}supportedSites`, {
credentials: 'include',
})
.then((resp) => {
return resp.json()
})
.then((res) => {
resolve(res)
})
})
}
export default function Script() { export default function Script() {
const [supportedSites, setSupportedSites] = useState()
useEffect(() => {
fetchSupportedSites().then((res) => {
setSupportedSites(res)
})
}, [])
return ( return (
<div> <div className={styles.content}>
<Head> <Head>
<title>Script - Qmining | Frylabs.net</title> <title>Script - Qmining | Frylabs.net</title>
</Head> </Head>
@ -27,14 +53,6 @@ export default function Script() {
<ExternalLinkIcon size={15} /> <ExternalLinkIcon size={15} />
</a> </a>
</div> </div>
{renderManual()}
</div>
)
}
function renderManual() {
return (
<>
<center> <center>
<h2 className={'subtitle'}>A userscript telepítése, és használata</h2> <h2 className={'subtitle'}>A userscript telepítése, és használata</h2>
</center> </center>
@ -43,6 +61,17 @@ function renderManual() {
Ez a userscript Moodle/Elearnig/KMOOC tesztek megoldása során Ez a userscript Moodle/Elearnig/KMOOC tesztek megoldása során
segítséget jelenít meg. segítséget jelenít meg.
</p> </p>
{supportedSites && (
<>
<b>Script jelenleg a következő oldalakon működik:</b>
<ul>
{supportedSites.map((ss) => {
return <li key={ss}>{ss}</li>
})}
</ul>
</>
)}
<b>Telepítés lépései:</b>
<ol> <ol>
<li> <li>
Tölts le egy userscript futtató kiegészítőt a böngésződhöz: pl. a{' '} Tölts le egy userscript futtató kiegészítőt a böngésződhöz: pl. a{' '}
@ -53,7 +82,7 @@ function renderManual() {
> >
Tampermonkey Tampermonkey
</a> </a>
-t. -t
</li> </li>
<li> <li>
<a <a
@ -65,51 +94,71 @@ function renderManual() {
</a>{' '} </a>{' '}
</li> </li>
<li> <li>
A script ezt követően udvariasan megkér, hogy hadd beszélgessen a Ha megnyitod az egyik támogatott oldalon a scriptet, akkor
szerverrel, ezt engedélyezd neki. (Always allow domain) használata előtt engedélyezned kell, hogy a szerverrel kommunikáljon
a script
</li> </li>
<li> <li>
A támogatott oldalakon a script egy apró menü ablakot jelenít meg a Ezután a script egy apró menü ablakot jelenít meg a weboldal bal
weboldal bal alsó részén alsó részén
</li> </li>
<li> <li>
Ezután a kitöltendő teszt oldalán a kérdésre a választ kell látnod Ha be vagy jelentkezve, akkor a teszt oldalakon a megoldásokat
felül egy lebegő ablakban. kellene látnod egy felugró ablakban felül. Ha nem, akkor{' '}
</li> <Link href="/faq">
<li> <a>GYIK</a>
Teszt ellenőrzés oldalon a script beküldi a szervernek a helyes </Link>
válaszokat, az lementi az új kérdéseket, amik ezután azonnal -be olvass bele, vagy{' '}
elérhetők lesznek (neked, és másoknak is) <Link href="/contact">
<a>írj üzenetet mi nem működik</a>
</Link>
</li> </li>
</ol> </ol>
Egyéb fontos tudnivalók: <b>Script működési elve:</b>
<ul> <ul>
<li> <li>
Ezt ments sokszor akár minden nap:{' '} Az egész folyamat a teszt ellenőrzés oldalon kezdődik, a script
onnan beolvassa, és szervernek beküldi a helyes válaszokat
</li>
<li>
Ezután ha újból kitöltöd a tesztet, vagy ugyanazzal a kérdéssel
találkozol másik tesztben (pl.: zh/vizsga) akkor ott megjeleníti a
választ
</li>
<li>
Más felhasználóknak köszönhetően már valószínűleg lesznek megoldások
a tesztjeidhez.{' '}
<Link href="/allQuestions">
<a>Itt</a>
</Link>{' '}
meg tudod tekinteni, hogy vannak-e válaszok a tárgyadhoz.
</li>
<li>
Ha teszt ellenőrzés oldal nem elérhető, vagy nem egyértelműen
kitalálható a helyes válasz, akkor a script nem tud mit csinálni,
nem ment le semmit
</li>
</ul>
<b>Egyéb fontos tudnivalók:</b>
<ul>
<li>
<Link href="/allQuestions">
<a>Itt elérhető online az összes kérdés</a>
</Link>{' '}
ha esetleg a script valamiért nem működne.
</li>
<li>
<a <a
href="http://qmining.frylabs.net/allqr.txt" href="http://qmining.frylabs.net/allqr.txt"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
> >
{' '} Itt megtalálható az összes kérdés letölthető TXT változatban
Összes kérdés TXT
</a>{' '} </a>{' '}
(az összes összegyűjtött kérdés, ha elszállna a szerver) ha esetleg nem lenne elérhető a szerver, vagy bármi hiba történne
</li>
<li>
Az{' '}
<a href="/allQuestions" rel="noreferrer">
összes kérdés oldal
</a>{' '}
az oldal, ahol manuálisan tudsz keresni, ha valami gáz lenne a
scripttel.
</li> </li>
</ul> </ul>
<div>
Ha útközben elakadsz, vagy hibát észlelsz, akkor oldalt a Kapcsolat
résznél sok elérhetőséget találsz, amin segítséget kérhetsz.
</div>
</div> </div>
</> </div>
) )
} }

View file

@ -0,0 +1,3 @@
.content b {
color: #fff;
}