import React, { useState, useEffect } from 'react'
import Link from 'next/link'
import Header from '../components/header'
import constants from '../constants'
import styles from './faq.module.css'
function PasswordSection() {
return (
<>
Minden felhasználónak más jelszava van.
Elvileg elég csak egyszer beírnod, és többet nem kell, de
Mentsd le biztos helyre a jelszót, hogy később is meglegyen!
Jelenleg nincs elfelejtett jelszó funkció, ha elfelejted, akkor az
örökre eltűnik!
Ha van jelszavad akkor bizonyos határok között te is{' '}
tudsz generálni
{' '}
másoknak.
Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott számú
helyen lehetsz belépve, máshol automatikusan ki leszel léptetve.
Mivel senkinek sincs felhasználóneve, csak egy UserID (amit
scriptben bal alul, weboldalon jobb felül találsz), így az egész
teljesen anonim. Emiatt a jelszavakat nem lehet megváltoztatni, hogy
a szükséges komplexitás megmaradjon.
>
)
}
function FAQSection() {
return (
Lehet-e valahol szerkeszteni, törölni, illetve manuálisan hozzáadni
a meglévő kérdésekhez?
Igen,{' '}
ezen az oldalon
{' '}
van lehetőség erre.
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.
)
}
function RiskSection() {
return (
<>
Itt {'"admin"'} alatt a szerver, weboldal és script egyedüli üzemeltetője
értendő, az egyetlen személy, aki hozzáfér akármilyen szolgáltatással
kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs
rendszere, beküldött fájlok, chat üzenetek. A weboldalon a felhasználó
azonosítója: #1 A weboldalt több ember is hostolhatja különböző domaineken, így
különböző hostolt szervereken az admin más személyt jelent!
Adminnak küldött fájlok kezeléseA beküldött fájlokban
(adminnnak chat-en küldött, vagy kapcsolat oldalon küldött fájlok)
szerepelhet személyes adat, pl.: név. Ha ilyen információval
találkozok, akkor azt ki szoktam törölni. Ezekhez a fájlokhoz és
információkhoz csak én férek hozzá, és sehova sincs kiadva. Ezek az
információk nincsenek sehol gyűjtve.
Ha esetleg {'"'}lebukik{'"'} a szerver, és tárolt 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ú,{' '}
TODO: ADD CONTRIBUTE TAB
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.
Bármikor észrevehetik hogy használod a scriptet Vannak rá
módszerek, hogy a weboldalon érzékeljék hogy fut-e userscript, de ez
ellen minden ismert módon védekezik a script.
A script shadow-root hoz teszi hozzá az összes megjelenített
elementet, így ezeket 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 (böngésző
kiegészítőn keresztül). 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.
Aztán ki tudja ténylegesen hogy lehet, ezért{' '}
csak saját felelősségre használd a scriptet!
A kérdésekre a válaszokat
manuálisan is be lehet küldeni
, és teszt kitöltés közben helyes válaszokat a weboldalon is meg lehet
keresni.
Bármikor leállhat a szerver
És akkor nem bírod megnézni a válaszokat. Erre van az{' '}
összes kérdés TXT
. A szervert több példányban (instance) is lehet futtatni, és az
üzemeltetői össze bírják kapcsolni egymással. Így ha az egyik kiesne,
a script automatikusan megnézi a többi szervert, hogy él-e
Akármelyik válasz rossz lehet
Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ. A
script minding a moodle szerint helyesnek vélt választ menti le, így
előfordulhat hogy logikailag nem helyes a válasz, de a tanárok azt
jelölték be helyesnek.
>
)
}
function WebsiteSaveSection() {
return (
<>
Ha hibát találsz, kérlek jelents. Hogy a hibákat a saját gépemen
reprodukálni tudjam, és könnyen ki bírjam javítani, sokszor jól jön, ha
egy lementett weboldalt megkapok, amin a hiba történik. Így lehet
menteni egy oldalt:
Lementett oldalon jobb klikk, oldal mentése
A lementett oldal egy fájlból és mappából áll.
A fájlt nyisd meg szövegszerkesztővel (notepad), és keress rá a
nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Amit
beküldesz, azt csak az admin látja.{' '}
Több infó itt{' '}
Ezután itt tudsz írni a weboldal
adminjának, hogy útba igazítson egy olyan fejlesztő felé, aki ezek a
fájlok alapján ki tudja javítani a hibát
Előfordulhat hogy a fejlesztőknek nincs hozzáférése semmilyen egyetemi
oldalhoz, így csak lementett weboldallal tudják hatékonyan tesztelni a
scriptet. Ezért hatalmas segítség ha felveszed a kapcsolatot adminnal ha
hibával találkozol.
>
)
}
function ScriptSection() {
return (
Hogy kell a scriptet telepíteni, és milyen oldalakon működik?
Ezen az oldalon van leírva{' '}
Hogyan működik a script?
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.: gyakorló teszt után 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
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, vagy
beküldheted.
Olyan helyeken fut le a script, ahol nem kellene, vagy ideiglenesen
ki akarom kapcsolni, el akarom rejteni
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
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.
Script felugró ablakon szereplő adatok és gombok értelmezése
Felső középső szöveg:
[Talált kérdés tárgya] - [Talált kérdés adatbázisának neve]
Jobb oldalt nyilak:
Ha több kérdés van egy oldalon, akkor azzal lehet váltogatni
Bal oldalt felső szám (5./1.)
Azt jelöli, hogy éppen hányadik kérdés válasza van megjelenítve.
Itt a 5./1. azt jelenti, hogy a tesztben a 5. kérdés 1. talált
válasza.
Bal oldalt %
A szerver szerint hány százalékban egyezik a talált válasz
azzal, amit tényleg keresni kell
Középen
Első sorban kérdés, másodikban válasz (ha a sor hosszú, akkor
megtörhet)
Alul nyilak:
Itt egy kérdésre több találat van, így közöttük neked kell
eldönteni, hogy mi a helyes válasz. Ez akkor van, ha a kérdés
szövege ugyan az, de más válasz is lehet. A nyilak segítségével
válogathatsz a válaszok között.
Bal oldalt felső szám (1./3.)
Itt az 1. azt jelenti hogy az oldalon az első kérdéshez van
megjelenítve a válasz, a 3. pedig azt, hogy a sok talált válaszok
közül a 3.
A kérdés mellett lévő [0]
A teszt kérdésben itt épp egy kép van, és azt jelenti a
szögletes zárójelben lévő szám. A tesztben lévő képnél is
megjelenik ez a [0] azonosító, hogy könnyen párosítani lehessen.
Ez akkor hasznos, ha képekhez tartozik a válasz. Ekkor figyelni
kell, mert a képek nem biztos hogy jó sorrendben vannak a tesztben
a talált válaszhoz képest, de a []-ben lévő azonosítók segítenek.
)
}
function AddSite() {
return (
<>
Jelenleg az, hogy a script melyik oldalakon fut bele van égetve a script
forráskódjába. Ez itt látható:{' '}
stable.user.js#L52
{'. '}
Ez azért van így, hogy biztos csak olyan oldalakon fusson a script amit
támogat is.
Ehhez persze kézzel hozzá lehet adni ideiglenesen bármilyen oldalt, hogy
kipróbáld ott működik-e. Akár működik, akár nem kérlek szólj, és frissítem
a scriptet hogy azon a domainen is fusson és működjön alapból.
Egyetem moodle oldalának hozzáadása a scripthez kézzel:
Először telepítsd a scriptet rendesen{' '}
Böngészőben nyisd meg a Tampermonkey bővítményt
Itt kattints a Dashboard-ra.
Keresd meg a scriptet, majd kattints rá:
A felugró szerkesztőben keresd meg a következő sorokat:
Itt az egyik @match ... 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!
Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól
ment, akkor elég frissíteni a moodle oldalát, és a script futni fog
rajta. Ezek után azon az oldalon amit beírtál meg kell jelennie a
Tampermonkey menüjében is:
Ha a tesztek közben mégsem megy, akkor ellenőrizd, hogy a beírt moodle
cím egyezik-e a teszt közbenivel. Ha kell egy kis segítség, kérdésed
van, nem működik valami, vagy éppen működik, de alapból nincs
hozzáadva: írj a kapcsolat oldalon!
>
)
}
function P2PSection() {
return (
<>
A szerverben peer to peer (p2p) funkcionalitás is implementálva van, így
ha több szerver fut egyszerre, akkor azok meg tudják osztani egymás
között a fontosabb adatokat, így az összes szerveren ugyanazok az adatok
érhetőek el.
Szinkronizált adatok:
Felhasználók: egy jelszóval az összes oldalra be tudsz lépni
Kérdés adatbázisok: Az összes tárgy és kérdés elérhető a
szervereken
Nem szinkronizált adatok:
Chat
Fórum
Motd (Script motto of the day)
A szinkronizált adatok frissessége több mindenen múlik: a szerver adminja
szinkronizál-e rendesein, illetve a két szerver között működik-e a
felhasználó szinkronizálás (van-e publick key megoszva a kettő között)
A szervereknek 1-1 adminja van, akik belelátnak minden szerveren
tárolt adatba, a szervereken ők a #1 számú felhasználók. Errő
többet a kockázatok résznél tudtok
olvasni.
További információk a szerver és a peer-ek állapotáról{' '}
itt találhatóak
>
)
}
const pages = {
faq: { name: 'Vegyes általános kérdések', component: FAQSection },
script: {
name: 'Script specifikus kérdések',
component: ScriptSection,
},
pw: { name: 'Infó jelszavakról', component: PasswordSection },
risk: {
name: 'Kockázatok, személyes infók kezelése',
component: RiskSection,
},
websitedl: {
name: 'Teszt közbeni hiba jelentése',
component: WebsiteSaveSection,
},
addsite: {
name: 'Futtatás (még) nem támogatott oldalon',
component: AddSite,
},
p2p: {
name: 'Peer to peer információk',
component: P2PSection,
},
}
export default function FAQ({ router }) {
const [currPage, setCurrPage] = useState(pages.faq)
const renderCurrPage = (page) => {
if (page) {
return
} else {
return null
}
}
useEffect(() => {
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
shallow: true,
})
}, [])
useEffect(() => {
if (router.query.tab) {
setCurrPage(pages[router.query.tab])
}
}, [router.query.tab])
return (