From 7ee8c376faf99256b74101f0c80fc202e1afb254 Mon Sep 17 00:00:00 2001 From: mrfry Date: Sat, 15 May 2021 11:12:54 +0200 Subject: [PATCH] Manuals update / refactor --- src/pages/contribute.js | 4 +- src/pages/faq.js | 161 +++++++++++++++++++++++++++--------- src/pages/script.js | 129 ++++++++++++++++++++--------- src/pages/script.module.css | 3 + 4 files changed, 214 insertions(+), 83 deletions(-) diff --git a/src/pages/contribute.js b/src/pages/contribute.js index 1d4fb7e..7e23ef8 100644 --- a/src/pages/contribute.js +++ b/src/pages/contribute.js @@ -54,12 +54,12 @@ export default function contribute() {

-
+
Git repos
-
+
{Object.keys(repos.repos).map((key) => { let repo = repos.repos[key] return ( diff --git a/src/pages/faq.js b/src/pages/faq.js index 13893e0..0633a2c 100644 --- a/src/pages/faq.js +++ b/src/pages/faq.js @@ -3,6 +3,9 @@ import Link from 'next/link' import Head from 'next/head' +import constants from '../constants.json' +import styles from './faq.module.css' + function PasswordSection() { return ( <> @@ -15,7 +18,7 @@ function PasswordSection() {
  • Minden felhasználónak más jelszava van.
  • Elvileg elég csak 1 szer beírnod, és többet nem kell, de{' '} - mentsd le biztos helyre a jelszót, hogy később is meglegyen! + mentsd le biztos helyre a jelszót, hogy később is meglegyen! Ha többször kell megadnod, akkor az bug lesz. Ilyenkor ezt{' '}
  • - Ha van jelszavad akkor bizonyos határok között te is{' '} + Ha van jelszavad akkor bizonyos határok között te is{' '}
  • - Saját jelszavadat ne oszd meg, mivel egyszerre egy helyen lehetsz - belépve, máshol automatikusan ki leszel jelentkeztetve. (meg minek, - ha tudsz adni másoknak az előző pont alapján) + Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott helyen + lehetsz belépve, máshol automatikusan ki leszel jelentkeztetve. (meg + minek, ha tudsz adni másoknak az előző pont alapján)
  • Mivel senkinek sincs felhasználóneve, csak egy UserID (amit bal alul @@ -66,33 +69,78 @@ function FAQSection() {
    • - Olyan helyeken fut le a script, ahol nem kellene, vagy - ideiglenesen ki akarod kapcsolni; + Hogy kell a scriptet telepíteni, milyen oldalakon működik és hogy + működik? -
      - - Tampermonkey bővitmény ikon -{'>'} click -{'>'} a scriptet - kapcsold ki. Csak ne felejtsd el visszakapcsolni ;) - + +
      Ezen az oldalon van leírva + {' '} +
    • +
    • + + Lehet-e valahol szerkeszteni, törölni, illetve manuálisan + hozzáadni a meglévő kéréseket? + + Igen,{' '} + + ezen az oldalon + {' '} + van lehetőség erre. +
    • +
    • + + A teszt ellenőrző oldal nem elérhető. Ilyenkor lehet valamit + tenni, hogy mégis el legyenek mentve a válaszok? + + A{' '} + + dataeditor + {' '} + oldal erre is jó, a Kitöltetlen tesztek 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. +
    • +
    • + + Mennyire anonymus a weboldal/script, és kiderülhet-e hogy + használom? + + 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. +
      + Több infó a kockázatok résznél ezen az oldalon. +
    • +
    • + + Olyan helyeken fut le a script, ahol nem kellene, vagy + ideiglenesen ki akarom kapcsolni + + Tampermonkey bővítmény ikon böngészőben -{'>'} click -{'>'} a + scriptet kapcsold ki. Csak ne felejtsd el visszakapcsolni ;)
    • -
    • Túl nagy a kérdést és a választ megjelenítő ablak, nem tudok a - válaszra kattintani; + válaszra kattintani -
      - - A felugró ablakot ha minden jól megy akkor a szélénél fogva tudod - mozgatni, vagy egeret rajtatartva a görgővel tudod állítani az - áttetszőségét, vagy be tudod zárni jobb felül X-el, vagy egér - középső gombbal. - + A felugró ablakot ha minden jól megy akkor a szélénél fogva tudod + mozgatni, vagy egeret rajtatartva a görgővel tudod állítani az + áttetszőségét, vagy be tudod zárni jobb felül X-el, vagy egér + középső gombbal.
    • -
    • - Gombok, %-ok, számok; -
      + Gombok, %-ok, számok img
    @@ -106,17 +154,21 @@ function RiskSection() { <>
    • - Bármikor észrevehetik hogy használod a scriptet -
      - A weboldalt már kevésbé, de úgy nem menti el a kérdéseket a script, - mert nem fut. Később manuálisan is be lehet majd küldeni - kérdés-válaszokat. + Bármikor észrevehetik hogy használod a scriptetA weboldalt már + kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '} + + Manuálisan is be lehet küldeni kérdés-válaszokat. +

      A script shadow-root hoz teszi hozzá az összes megjelenített elementet, így ezeket szinte lehetetlen detektálni. A moodle 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 - 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 eseménnyel, amit nem tud nyomon követni.

      @@ -124,22 +176,37 @@ function RiskSection() {

    • Bármikor leállhat a szerver -
      És akkor nem bírod megnézni a válaszokat. Erre van az{' '} - {' '} összes kérdés TXT
    • Akármelyik válasz rossz lehet -
      Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ
    • +
    • + + Ha esetleg {'"'}lebukik{'"'} a szerver, és személyes infók + + 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. +

      + Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '} + + ezek repository-ja publikus + {' '} + (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. +

    ) @@ -261,11 +328,11 @@ function AddSite() {
  • - Itt az egyik @require ... sor után egy új sorban írd be az + Itt az egyik @require ... sor után egy új sorban írd be az egyetemed moodle oldalának címét. Ha ez a cím pl.:{' '} - https://moodle.egyetem.hu/main/akármi, akkor a következőre írd - át: https://moodle.egyetem.hu/*. Fenti képen látsz néhány - példát. A {'"*"'} a végén fontos! + https://moodle.egyetem.hu/main/akármi, akkor a következőre írd + át: https://moodle.egyetem.hu/*. Fenti képen látsz néhány + példát. A {'"*"'} a végén fontos!
  • Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól @@ -290,8 +357,8 @@ function AddSite() { } const pages = { - faq: { name: 'GYIK', component: FAQSection }, - pw: { name: 'Jelszavak', component: PasswordSection }, + faq: { name: 'Vegyes általános kérdések', component: FAQSection }, + pw: { name: 'Infó jelszavakról', component: PasswordSection }, risk: { name: 'Kockázatok', component: RiskSection }, websitedl: { name: 'Teszt közbeni hiba jelentése', @@ -302,7 +369,7 @@ const pages = { component: ScriptReinstallSection, }, addsite: { - name: 'Új oldalon tesztelés', + name: 'Futtatás (még) nem támogatott oldalon', component: AddSite, }, } @@ -318,6 +385,12 @@ export default function FAQ({ router }) { } } + useEffect(() => { + router.replace(`${router.asPath.replace('.html', '')}`, undefined, { + shallow: true, + }) + }, []) + useEffect(() => { if (router.query.tab) { setCurrPage(pages[router.query.tab]) @@ -341,6 +414,12 @@ export default function FAQ({ router }) { key={key} onClick={() => { setCurrPage(page) + + router.replace( + `${router.pathname}?tab=${encodeURIComponent(key)}`, + undefined, + { shallow: true } + ) }} > {page.name} @@ -349,7 +428,7 @@ export default function FAQ({ router }) { })}

  • - {renderCurrPage(currPage)} +
    {renderCurrPage(currPage)}

    ) diff --git a/src/pages/script.js b/src/pages/script.js index 0e22bf2..be0baa8 100644 --- a/src/pages/script.js +++ b/src/pages/script.js @@ -1,12 +1,38 @@ -import React from 'react' +import React, { useState, useEffect } from 'react' import Head from 'next/head' +import Link from 'next/link' +import constants from '../constants.json' 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() { + const [supportedSites, setSupportedSites] = useState() + + useEffect(() => { + fetchSupportedSites().then((res) => { + setSupportedSites(res) + }) + }, []) + return ( -
    +
    Script - Qmining | Frylabs.net @@ -27,14 +53,6 @@ export default function Script() {
    - {renderManual()} -
    - ) -} - -function renderManual() { - return ( - <>

    A userscript telepítése, és használata

    @@ -43,6 +61,17 @@ function renderManual() { Ez a userscript Moodle/Elearnig/KMOOC tesztek megoldása során segítséget jelenít meg.

    + {supportedSites && ( + <> + Script jelenleg a következő oldalakon működik: +
      + {supportedSites.map((ss) => { + return
    • {ss}
    • + })} +
    + + )} + Telepítés lépései:
    1. 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 - -t. + -t
    2. {' '}
    3. - A script ezt követően udvariasan megkér, hogy hadd beszélgessen a - szerverrel, ezt engedélyezd neki. (Always allow domain) + Ha megnyitod az egyik támogatott oldalon a scriptet, akkor + használata előtt engedélyezned kell, hogy a szerverrel kommunikáljon + a script
    4. - A támogatott oldalakon a script egy apró menü ablakot jelenít meg a - weboldal bal alsó részén + Ezután a script egy apró menü ablakot jelenít meg a weboldal bal + alsó részén
    5. - Ezután a kitöltendő teszt oldalán a kérdésre a választ kell látnod - felül egy lebegő ablakban. -
    6. -
    7. - Teszt ellenőrzés oldalon a script beküldi a szervernek a helyes - válaszokat, az lementi az új kérdéseket, amik ezután azonnal - elérhetők lesznek (neked, és másoknak is) + Ha be vagy jelentkezve, akkor a teszt oldalakon a megoldásokat + kellene látnod egy felugró ablakban felül. Ha nem, akkor{' '} + + GYIK + + -be olvass bele, vagy{' '} + + írj üzenetet mi nem működik +
    - Egyéb fontos tudnivalók: + Script működési elve:
    • - 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 +
    • +
    • + 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 +
    • +
    • + Más felhasználóknak köszönhetően már valószínűleg lesznek megoldások + a tesztjeidhez.{' '} + + Itt + {' '} + meg tudod tekinteni, hogy vannak-e válaszok a tárgyadhoz. +
    • +
    • + 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 +
    • +
    + Egyéb fontos tudnivalók: + -
    - 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. -
    - +
    ) } diff --git a/src/pages/script.module.css b/src/pages/script.module.css index e69de29..5fc7b04 100644 --- a/src/pages/script.module.css +++ b/src/pages/script.module.css @@ -0,0 +1,3 @@ +.content b { + color: #fff; +}