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 {
margin-left: 180px;
margin-left: 195px;
margin-right: 15px;
margin-top: 45px;
padding: 1px 0px;
width: 100%;

View file

@ -10,26 +10,11 @@ function PasswordSection() {
return (
<>
<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>
<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>
Elvileg elég csak 1 szer beírnod, és többet nem kell, de{' '}
<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>
Mentsd le biztos helyre a jelszót, hogy később is meglegyen!
<i>
Jelenleg nincs elfelejtett jelszó funkció, ha elfelejted, akkor az
örökre eltűnik!
@ -44,17 +29,17 @@ function PasswordSection() {
>
tudsz generálni
</a>{' '}
másoknak (ncore style).
másoknak.
</li>
<li>
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)
Saját jelszavadat ne oszd meg, mivel egyszerre korlátozott számú
helyen lehetsz belépve, máshol automatikusan ki leszel léptetve.
</li>
<li>
Mivel senkinek sincs felhasználóneve, csak egy UserID (amit bal alul
találsz), így az egész teljesen anonim. Emiatt a jelszavakat nem
lehet megváltoztatni, hogy a szükséges komplexitás megmaradjon.
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.
</li>
</ul>
</div>
@ -92,16 +77,6 @@ function FAQSection() {
<br />
Több infó a <Link href="/faq?tab=risk">kockázatok résznél</Link>.
</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>
</div>
)
@ -110,18 +85,21 @@ function FAQSection() {
function RiskSection() {
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
kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs
rendszere, beküldött fájlok. A weboldalon a felhasználó azonosítója:{' '}
<i>#1</i>
rendszere, beküldött fájlok, chat üzenetek. A weboldalon a felhasználó
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>
<li>
<b>Beküldött fájlok kezelése</b>A beküldött fájlokban 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.
<b>Adminnak küldött fájlok kezelése</b>A 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.
</li>
<li>
<b>
@ -134,6 +112,7 @@ function RiskSection() {
teszi.
<p />
Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '}
TODO: ADD CONTRIBUTE TAB
<Link href="/contribute#gitrepo">
ezek repository-ja publikus
</Link>{' '}
@ -142,25 +121,29 @@ function RiskSection() {
milyen kód fut pontosan.
</li>
<li>
<b>Bármikor észrevehetik hogy használod a scriptet</b>A weboldalt már
kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '}
<b>Bármikor észrevehetik hogy használod a scriptet</b> Vannak
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
href={`${constants.siteUrl}dataeditor`}
target="_blank"
rel="noreferrer"
>
Manuálisan is be lehet küldeni kérdés-válaszokat.
manuálisan is be lehet küldeni
</a>
<p />
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 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
, és teszt kitöltés közben helyes válaszokat a weboldalon is meg lehet
keresni.
</li>
<li>
<b>Bármikor leállhat a szerver</b>
@ -172,10 +155,16 @@ function RiskSection() {
>
összes kérdés TXT
</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>
<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>
</ul>
</>
@ -212,19 +201,21 @@ function WebsiteSaveSection() {
</li>
<li>
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
szoktam megnézni a neveket, nem is tudok velük mit kezdeni, és nem is
adom ki soha. Amit beküldesz, azt csak én látom.{' '}
nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Amit
beküldesz, azt csak az admin látja.{' '}
<Link href="/faq?tab=risk">Több infó itt</Link>{' '}
</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>
</ul>
<p>
Mivel nincs hozzáférésem semmilyen egyetemi oldalhoz, így csak így tudom
hatékonyan tesztelni a scriptet. Ezért hatalmas segítség ha feltöltöd
azt az oldalt amin hibával találkozol.
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.
</p>
</>
)
@ -277,12 +268,13 @@ function ScriptSection() {
</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.
lementve helyes válasz, de ezt te utólag bejelölheted, vagy
beküldheted.
</li>
<li>
<b>
Olyan helyeken fut le a script, ahol nem kellene, vagy ideiglenesen
ki akarom kapcsolni
ki akarom kapcsolni, el akarom rejteni
</b>
Tampermonkey bővítmény ikon böngészőben -{'>'} click -{'>'} a scriptet
kapcsold ki. Csak ne felejtsd el visszakapcsolni {';)'}
@ -380,7 +372,7 @@ function AddSite() {
<a
rel="noreferrer"
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
</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 = {
faq: { name: 'Vegyes általános kérdések', component: FAQSection },
script: {
@ -458,6 +489,10 @@ const pages = {
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 }) {

View file

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

View file

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

View file

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