added p2p faq section, other minor improvements

This commit is contained in:
mrfry 2023-04-16 19:08:28 +02:00
parent 6eeb83b2e7
commit 075271ca01
5 changed files with 112 additions and 68 deletions

View file

@ -88,7 +88,8 @@
} }
.content { .content {
margin-left: 180px; margin-left: 195px;
margin-right: 15px;
margin-top: 45px; margin-top: 45px;
padding: 1px 0px; padding: 1px 0px;
width: 100%; width: 100%;

View file

@ -10,26 +10,11 @@ function PasswordSection() {
return ( return (
<> <>
<div className={'manualBody'}> <div className={'manualBody'}>
<p>
Ha ezt olvasod valszeg már neked is van. Azért lett bevezetve, hogy
nagyjából zárt legyen a felhasználók köre.
</p>
<ul> <ul>
<li>Minden felhasználónak más jelszava van.</li> <li>Minden felhasználónak más jelszava van.</li>
<li>Elvileg elég csak egyszer beírnod, és többet nem kell, de </li>
<li> <li>
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!
<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{' '}
<a
href={`${constants.siteUrl}contact?man`}
target="_blank"
rel="noreferrer"
>
jelentsd
</a>
.
</li>
<li>
<i> <i>
Jelenleg nincs elfelejtett jelszó funkció, ha elfelejted, akkor az Jelenleg nincs elfelejtett jelszó funkció, ha elfelejted, akkor az
örökre eltűnik! örökre eltűnik!
@ -44,17 +29,17 @@ function PasswordSection() {
> >
tudsz generálni tudsz generálni
</a>{' '} </a>{' '}
másoknak (ncore style). másoknak.
</li> </li>
<li> <li>
Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott helyen Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott számú
lehetsz belépve, máshol automatikusan ki leszel jelentkeztetve. (meg helyen lehetsz belépve, máshol automatikusan ki leszel léptetve.
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
találsz), így az egész teljesen anonim. Emiatt a jelszavakat nem scriptben bal alul, weboldalon jobb felül találsz), így az egész
lehet megváltoztatni, hogy a szükséges komplexitás megmaradjon. teljesen anonim. Emiatt a jelszavakat nem lehet megváltoztatni, hogy
a szükséges komplexitás megmaradjon.
</li> </li>
</ul> </ul>
</div> </div>
@ -92,16 +77,6 @@ function FAQSection() {
<br /> <br />
Több infó a <Link href="/faq?tab=risk">kockázatok résznél</Link>. Több infó a <Link href="/faq?tab=risk">kockázatok résznél</Link>.
</li> </li>
<li>
<b>Ki és miért csinálja ezt a weboldalt?</b>
Az egész projektet (szerver, weboldal és script) egy személy
fejlesztette (oldalon id-ja: #1). A weboldal designját #1677
készítette, illetve egy pár apróbb hozzájárulás (fejlesztésben és
hardverben) is érkezett a projekthez.
<br />
Az egész projekt egy hobby, csupán azért csinálom (#1) mert
időtöltés, és szeretem az ilyen kihívásokat.
</li>
</ul> </ul>
</div> </div>
) )
@ -110,18 +85,21 @@ function FAQSection() {
function RiskSection() { function RiskSection() {
return ( return (
<> <>
Itt {'"én"'} alatt a szerver, weboldal és script egyedüli üzemeltetője 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 értendő, az egyetlen személy, aki hozzáfér akármilyen szolgáltatással
kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs
rendszere, beküldött fájlok. A weboldalon a felhasználó azonosítója:{' '} rendszere, beküldött fájlok, chat üzenetek. A weboldalon a felhasználó
<i>#1</i> azonosítója: <i>#1</i>
<br />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!
<ul> <ul>
<li> <li>
<b>Beküldött fájlok kezelése</b>A beküldött fájlokban szerepelhet <b>Adminnak küldött fájlok kezelése</b>A beküldött fájlokban
személyes adat, pl.: név. Ha ilyen információval találkozok, akkor azt (adminnnak chat-en küldött, vagy kapcsolat oldalon küldött fájlok)
ki szoktam törölni. Ezekhez a fájlokhoz és információkhoz csak én szerepelhet személyes adat, pl.: név. Ha ilyen információval
férek hozzá, és sehova sincs kiadva. Ezek az információk nincsenek találkozok, akkor azt ki szoktam törölni. Ezekhez a fájlokhoz és
sehol gyűjtve. információkhoz csak én férek hozzá, és sehova sincs kiadva. Ezek az
információk nincsenek sehol gyűjtve.
</li> </li>
<li> <li>
<b> <b>
@ -134,6 +112,7 @@ function RiskSection() {
teszi. teszi.
<p /> <p />
Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '} Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '}
TODO: ADD CONTRIBUTE TAB
<Link href="/contribute#gitrepo"> <Link href="/contribute#gitrepo">
ezek repository-ja publikus ezek repository-ja publikus
</Link>{' '} </Link>{' '}
@ -142,25 +121,29 @@ function RiskSection() {
milyen kód fut pontosan. milyen kód fut pontosan.
</li> </li>
<li> <li>
<b>Bármikor észrevehetik hogy használod a scriptet</b>A weboldalt már <b>Bármikor észrevehetik hogy használod a scriptet</b> Vannak
kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '} módszerek, hogy a weboldalon érzékeljék hogy fut-e userscript, de ez
ellen minden ismert módon védekezik a script. <p />
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.
<p />
Aztán ki tudja ténylegesen hogy lehet, ezért{' '}
<b>csak saját felelősségre használd a scriptet!</b>
<p />A kérdésekre a válaszokat
<a <a
href={`${constants.siteUrl}dataeditor`} href={`${constants.siteUrl}dataeditor`}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
> >
Manuálisan is be lehet küldeni kérdés-válaszokat. manuálisan is be lehet küldeni
</a> </a>
<p /> , és teszt kitöltés közben helyes válaszokat a weboldalon is meg lehet
A script shadow-root hoz teszi hozzá az összes megjelenített keresni.
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 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.
<p />
Aztán ki tudja ténylegesen hogy lehet
</li> </li>
<li> <li>
<b>Bármikor leállhat a szerver</b> <b>Bármikor leállhat a szerver</b>
@ -172,10 +155,16 @@ function RiskSection() {
> >
összes kérdés TXT összes kérdés TXT
</a> </a>
. 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
</li> </li>
<li> <li>
<b>Akármelyik válasz rossz lehet</b> <b>Akármelyik válasz rossz lehet</b>
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. 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.
</li> </li>
</ul> </ul>
</> </>
@ -212,19 +201,21 @@ function WebsiteSaveSection() {
</li> </li>
<li> <li>
A fájlt nyisd meg szövegszerkesztővel (notepad), és keress a A fájlt nyisd meg szövegszerkesztővel (notepad), és keress a
nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Nem nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Amit
szoktam megnézni a neveket, nem is tudok velük mit kezdeni, és nem is beküldesz, azt csak az admin látja.{' '}
adom ki soha. Amit beküldesz, azt csak én látom.{' '}
<Link href="/faq?tab=risk">Több infó itt</Link>{' '} <Link href="/faq?tab=risk">Több infó itt</Link>{' '}
</li> </li>
<li> <li>
<Link href="/contact">Ide tudod feltölteni</Link>{' '} Ezután <Link href="/contact">itt</Link> 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
</li> </li>
</ul> </ul>
<p> <p>
Mivel nincs hozzáférésem semmilyen egyetemi oldalhoz, így csak így tudom Előfordulhat hogy a fejlesztőknek nincs hozzáférése semmilyen egyetemi
hatékonyan tesztelni a scriptet. Ezért hatalmas segítség ha feltöltöd oldalhoz, így csak lementett weboldallal tudják hatékonyan tesztelni a
azt az oldalt amin hibával találkozol. scriptet. Ezért hatalmas segítség ha felveszed a kapcsolatot adminnal ha
hibával találkozol.
</p> </p>
</> </>
) )
@ -277,12 +268,13 @@ function ScriptSection() {
</a>{' '} </a>{' '}
oldal erre is , a <i>Kitöltetlen tesztek</i> részhez a script 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 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. lementve helyes válasz, de ezt te utólag bejelölheted, vagy
beküldheted.
</li> </li>
<li> <li>
<b> <b>
Olyan helyeken fut le a script, ahol nem kellene, vagy ideiglenesen Olyan helyeken fut le a script, ahol nem kellene, vagy ideiglenesen
ki akarom kapcsolni ki akarom kapcsolni, el akarom rejteni
</b> </b>
Tampermonkey bővítmény ikon böngészőben -{'>'} click -{'>'} a scriptet Tampermonkey bővítmény ikon böngészőben -{'>'} click -{'>'} a scriptet
kapcsold ki. Csak ne felejtsd el visszakapcsolni {';)'} kapcsold ki. Csak ne felejtsd el visszakapcsolni {';)'}
@ -380,7 +372,7 @@ function AddSite() {
<a <a
rel="noreferrer" rel="noreferrer"
target="_blank" target="_blank"
href="https://gitlab.com/MrFry/moodle-test-userscript/-/blob/master/stable.user.js#L52" href="https://gitlab.com/MrFry/moodle-test-userscript/-/blob/master/user.js"
> >
stable.user.js#L52 stable.user.js#L52
</a> </a>
@ -439,6 +431,45 @@ function AddSite() {
) )
} }
function P2PSection() {
return (
<>
<p>
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.
</p>
Szinkronizált adatok:
<ul>
<li>
<i>Felhasználók</i>: egy jelszóval az összes oldalra be tudsz lépni
</li>
<li>
<i>Kérdés adatbázisok</i>: Az összes tárgy és kérdés elérhető a
szervereken
</li>
</ul>
<i>Nem</i> szinkronizált adatok:
<ul>
<li>Chat</li>
<li>Fórum</li>
<li>Motd (Script motto of the day)</li>
</ul>
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)
<p />A szervereknek 1-1 adminja van, akik belelátnak minden szerveren
tárolt adatba, a szervereken ők a <i>#1</i> számú felhasználók. Errő
többet a <Link href="/faq?tab=risk">kockázatok résznél</Link> tudtok
olvasni.
<p />
További információk a szerver és a peer-ek állapotáról{' '}
<Link href="/p2pinfo">itt</Link> találhatóak
</>
)
}
const pages = { const pages = {
faq: { name: 'Vegyes általános kérdések', component: FAQSection }, faq: { name: 'Vegyes általános kérdések', component: FAQSection },
script: { script: {
@ -458,6 +489,10 @@ const pages = {
name: 'Futtatás (még) nem támogatott oldalon', name: 'Futtatás (még) nem támogatott oldalon',
component: AddSite, component: AddSite,
}, },
p2p: {
name: 'Peer to peer információk',
component: P2PSection,
},
} }
export default function FAQ({ router }) { export default function FAQ({ router }) {

View file

@ -8,6 +8,10 @@
margin: 5px 0px; margin: 5px 0px;
} }
.content ul {
padding: 0px 20px;
}
.content i { .content i {
color: #fff; color: #fff;
} }

View file

@ -15,11 +15,15 @@
flex: 1; flex: 1;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
text-align: end;
align-items: center;
} }
.infoRow :last-child { .infoRow :last-child {
flex: 2; flex: 2;
color: var(--text-color); color: var(--text-color);
display: flex;
align-items: center;
} }
.peerContainer, .peerHeader { .peerContainer, .peerHeader {

View file

@ -146,7 +146,7 @@ export default function Script() {
</li> </li>
<li> <li>
<a <a
href={`${constants.siteUrl}allqr.txt`} href={`${constants.apiUrl}allqr.txt`}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
> >