diff --git a/constants.js b/constants.js new file mode 100644 index 0000000..721e954 --- /dev/null +++ b/constants.js @@ -0,0 +1,16 @@ +// eslint-disable-next-line no-undef +const useLocalhost = process && process.env.NODE_ENV === 'development' + +const constants = { + siteUrl: !useLocalhost ? 'http://frylabs.net/' : 'http://localhost:8080/', + apiUrl: !useLocalhost + ? 'http://frylabs.net/api/' + : 'http://localhost:8080/api/', + chatUrl: !useLocalhost ? 'http://frylabs.net/' : 'http://localhost:8080/', + mobileWindowWidth: 700, + maxQuestionsToRender: 250, + imageExts: ['gif', 'png', 'jpeg', 'jpg'], + videoExts: ['mp4', 'mkv', 'webm'], +} + +export default constants diff --git a/src/components/QuestionSearchResult.jsx b/src/components/QuestionSearchResult.jsx index 2af0324..8a94554 100644 --- a/src/components/QuestionSearchResult.jsx +++ b/src/components/QuestionSearchResult.jsx @@ -2,7 +2,7 @@ import React from 'react' import Questions from './Questions' -import constants from '../constants.json' +import constants from '../constants' const countReducer = (acc, subj) => { return acc + subj.Questions.length diff --git a/src/components/b.jsx b/src/components/b.jsx index b5afd88..7a7c496 100644 --- a/src/components/b.jsx +++ b/src/components/b.jsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react' -import constants from '../constants.json' +import constants from '../constants' const soundCount = 7 function GetRandom(min, max) { diff --git a/src/components/composer.jsx b/src/components/composer.jsx index 9ebb665..1f9054f 100644 --- a/src/components/composer.jsx +++ b/src/components/composer.jsx @@ -3,7 +3,7 @@ import React, { useState } from 'react' import Modal from './modal' import styles from './composer.module.css' -import constants from '../constants.json' +import constants from '../constants' export default function Composer({ onSubmit, allowFile, fileOnly }) { const [editorShowing, setEditorShowing] = useState(false) diff --git a/src/components/dbSelector.jsx b/src/components/dbSelector.jsx index 202ec1f..5bb3153 100644 --- a/src/components/dbSelector.jsx +++ b/src/components/dbSelector.jsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react' import Modal from './modal' -import constants from '../constants.json' +import constants from '../constants' import styles from './dbSelector.module.css' diff --git a/src/components/feedbackArea.jsx b/src/components/feedbackArea.jsx index e2b40b7..95b6b48 100644 --- a/src/components/feedbackArea.jsx +++ b/src/components/feedbackArea.jsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import styles from './feedbackArea.module.css' -import constants from '../constants.json' +import constants from '../constants' function FileUploader({ onChange }) { return ( diff --git a/src/components/forum.jsx b/src/components/forum.jsx index d731485..6aed857 100644 --- a/src/components/forum.jsx +++ b/src/components/forum.jsx @@ -8,7 +8,7 @@ import Header from '../components/header' import Modal from '../components/modal' import styles from './forum.module.css' -import constants from '../constants.json' +import constants from '../constants' const forumPostPerPage = 5 diff --git a/src/components/layout.jsx b/src/components/layout.jsx index e2a26b0..f9a0895 100644 --- a/src/components/layout.jsx +++ b/src/components/layout.jsx @@ -7,7 +7,7 @@ const Snowfall = dynamic(() => import('react-snowfall'), { ssr: false }) import LogoutIcon from './logoutIcon' import Modal from './modal' -import constants from '../constants.json' +import constants from '../constants' import BB from './b' import styles from './layout.module.css' @@ -67,36 +67,35 @@ function TopBar({ unreads, userId, }) { - return <> - - + return ( + <> + + + FryLabs + +
+ {Object.keys(topBarLinks).map((key) => { + const item = topBarLinks[key] - FryLabs - - -
- {Object.keys(topBarLinks).map((key) => { - const item = topBarLinks[key] - - return ( - ( - - {item.text} - - ) - ); - })} -
-
- - ; + return ( + + {item.text} + + ) + })} +
+
+ + + ) } function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) { @@ -110,17 +109,16 @@ function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) { } return ( - ( - + id={item.id || undefined} + > {item.text} - - ) - ); + + ) })} { @@ -132,7 +130,7 @@ function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) {
- ) : null; + ) : null } function Donate() { @@ -187,11 +185,10 @@ function UserStatus({ userId, unreads, onClick }) { href="/chat" onClick={onClick} title={`Chat${unreadCount ? ' (' + unreadCount + ' új üzenet)' : ''}`} - className={styles.unreadNotification}> - + className={styles.unreadNotification} + > 💬 {unreadCount ?
{unreadCount}
: null} -
- ); + ) } function MenuIcon({ setSidebarOpen, sidebarOpen }) { diff --git a/src/components/newsEntry.jsx b/src/components/newsEntry.jsx index 85f2a4b..e3e4503 100644 --- a/src/components/newsEntry.jsx +++ b/src/components/newsEntry.jsx @@ -4,7 +4,7 @@ import ReactButton from './reactButton' import Comments from './comments' import Link from 'next/link' -import constants from '../constants.json' +import constants from '../constants' import styles from './newsEntry.module.css' @@ -95,9 +95,9 @@ export default function NewsEntry({ + className={'userId'} + > User #{user} -
@ @@ -145,5 +145,5 @@ export default function NewsEntry({ />
- ); + ) } diff --git a/src/components/sleep.jsx b/src/components/sleep.jsx index effa908..2134160 100644 --- a/src/components/sleep.jsx +++ b/src/components/sleep.jsx @@ -1,5 +1,5 @@ import React from 'react' -import constants from '../constants.json' +import constants from '../constants' export default function Sleep() { const hours = new Date().getHours() diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 0000000..ae47948 --- /dev/null +++ b/src/constants.js @@ -0,0 +1,15 @@ +// eslint-disable-next-line no-undef +const useLocalhost = process && process.env.NODE_ENV === 'development' + +const constants = { + siteUrl: !useLocalhost ? 'http://frylabs.net/' : 'http://localhost:8080/', + apiUrl: !useLocalhost + ? 'http://frylabs.net/api/' + : 'http://localhost:8080/api/', + chatUrl: !useLocalhost ? 'http://frylabs.net/' : 'http://localhost:8080/', + mobileWindowWidth: 700, + maxQuestionsToRender: 250, + imageExts: ['gif', 'png', 'jpeg', 'jpg'], + videoExts: ['mp4', 'mkv', 'webm'], +} +export default constants diff --git a/src/constants.json b/src/constants.json deleted file mode 100644 index 60884de..0000000 --- a/src/constants.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "siteUrl": "http://localhost:8080/", - "apiUrl": "http://localhost:8080/", - "mobileWindowWidth": 700, - "maxQuestionsToRender": 250, - "imageExts": ["gif", "png", "jpeg", "jpg"], - "videoExts": ["mp4", "mkv", "webm"] -} diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx index 60869d0..f04bd83 100644 --- a/src/pages/_app.jsx +++ b/src/pages/_app.jsx @@ -5,7 +5,7 @@ import Head from 'next/head' import Layout from '../components/layout' import '../defaultStyles.css' -import constants from '../constants.json' +import constants from '../constants' export const queryClient = new QueryClient({ defaultOptions: { diff --git a/src/pages/allQuestions.jsx b/src/pages/allQuestions.jsx index ea36d19..ab24250 100644 --- a/src/pages/allQuestions.jsx +++ b/src/pages/allQuestions.jsx @@ -10,7 +10,7 @@ import SearchBar from '../components/searchBar' import styles from './allQuestions.module.css' -import constants from '../constants.json' +import constants from '../constants' const countReducer = (acc, subj) => { return acc + subj.Questions.length diff --git a/src/pages/chat.jsx b/src/pages/chat.jsx index 87036a3..4e6e5b5 100644 --- a/src/pages/chat.jsx +++ b/src/pages/chat.jsx @@ -2,7 +2,7 @@ import React from 'react' import io from 'socket.io-client' import linkifyString from 'linkify-string' -import constants from '../constants.json' +import constants from '../constants' import LoadingIndicator from '../components/LoadingIndicator' import { queryClient } from '../pages/_app' import Header from '../components/header' @@ -202,7 +202,7 @@ export default class Chat extends React.Component { return } // https://socket.io/docs/v4/handling-cors/#Configuration - const socket = io(`${constants.apiUrl}`, { + const socket = io(`${constants.chatUrl}`, { withCredentials: true, extraHeaders: { 'qmining-chat': 'qmining-chat', diff --git a/src/pages/contact.jsx b/src/pages/contact.jsx index 6cbb9df..abc629f 100644 --- a/src/pages/contact.jsx +++ b/src/pages/contact.jsx @@ -3,7 +3,7 @@ import Link from 'next/link' import Header from '../components/header' import FeedbackArea from '../components/feedbackArea' -import constants from '../constants.json' +import constants from '../constants' import LoadingIndicator from '../components/LoadingIndicator' import styles from './contact.module.css' @@ -62,13 +62,10 @@ export default function Contact({ globalState, setGlobalState }) {
{contacts ? ( <> -
-
Alternatív módok
-
- TODO: remove this Az alábbi módokat is nyugodtan használhatod, a - nevedet, e-mail címedet, illetve semmilyen egyéb adatot nem adok - ki harmadik fél számára. (egyedül én fogom látni) -
+
+ Figyelem! A szerver üzemeltetőjének kontaktját a + {'"P2P infó"'} + részlegen találod!
{Object.keys(contacts).map((key) => { @@ -78,8 +75,7 @@ export default function Contact({ globalState, setGlobalState }) {
{description}
{href ? ( - {' '} - {value}{' '} + {value} ) : (
{value}
diff --git a/src/pages/faq.jsx b/src/pages/faq.jsx index dc5d74e..59849dd 100644 --- a/src/pages/faq.jsx +++ b/src/pages/faq.jsx @@ -3,7 +3,7 @@ import Link from 'next/link' import Header from '../components/header' -import constants from '../constants.json' +import constants from '../constants' import styles from './faq.module.css' function PasswordSection() { @@ -90,11 +90,7 @@ function FAQSection() { (í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 - - . + Több infó a kockázatok résznél.
  • Ki és miért csinálja ezt a weboldalt? @@ -108,130 +104,130 @@ function FAQSection() {
  • - ); + ) } function RiskSection() { - return <> - Itt {'"én"'} 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:{' '} - #1 -
      -
    • - Beküldött fájlok kezeléseA 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. -
    • -
    • - - 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ú,{' '} - - 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 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 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 -

    • -
    • - 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 -
    • -
    - ; + return ( + <> + Itt {'"én"'} 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:{' '} + #1 +
      +
    • + Beküldött fájlok kezeléseA 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. +
    • +
    • + + 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ú,{' '} + + 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 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 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 +

    • +
    • + 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 +
    • +
    + + ) } 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 -
      - img -
    • -
    • - A lementett oldal egy fájlból és mappából áll. -
      - img -
    • -
    • - 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. 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.{' '} - - Több infó itt - {' '} -
    • -
    • - - Ide tudod feltölteni - {' '} -
    • -
    -

    - 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. -

    - ; + 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 +
      + img +
    • +
    • + A lementett oldal egy fájlból és mappából áll. +
      + img +
    • +
    • + 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. 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.{' '} + Több infó itt{' '} +
    • +
    • + Ide tudod feltölteni{' '} +
    • +
    +

    + 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. +

    + + ) } function ScriptSection() { @@ -240,9 +236,7 @@ function ScriptSection() {
    • Hogy kell a scriptet telepíteni, és milyen oldalakon működik? - - Ezen az oldalon van leírva - {' '} + Ezen az oldalon van leírva{' '}
    • Hogyan működik a script? @@ -258,10 +252,7 @@ function ScriptSection() {
    • Más felhasználóknak köszönhetően már valószínűleg lesznek - megoldások a tesztjeidhez.{' '} - - Itt - {' '} + megoldások a tesztjeidhez. Itt{' '} meg tudod tekinteni, hogy vannak-e válaszok a tárgyadhoz.
    • @@ -378,77 +369,74 @@ function ScriptSection() {
    - ); + ) } 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! - -
    • -
    - ; + 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! +
    • +
    + + ) } const pages = { diff --git a/src/pages/memes.jsx b/src/pages/memes.jsx index 9203f96..ce9ab7e 100644 --- a/src/pages/memes.jsx +++ b/src/pages/memes.jsx @@ -9,7 +9,7 @@ import Composer from '../components/composer' import Modal from '../components/modal' import styles from './memes.module.css' -import constants from '../constants.json' +import constants from '../constants' const forumPostPerPage = 5 const frontpageForumName = 'memes' diff --git a/src/pages/p2pinfo.jsx b/src/pages/p2pinfo.jsx index 33f05b2..6df4c1f 100644 --- a/src/pages/p2pinfo.jsx +++ b/src/pages/p2pinfo.jsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react' import Link from 'next/link' import Header from '../components/header' -import constants from '../constants.json' +import constants from '../constants' import LoadingIndicator from '../components/LoadingIndicator' import styles from './p2pinfo.module.css' @@ -36,15 +36,15 @@ const infos = [ key: 'questionCount', type: 'number', }, + { + title: 'Script version', + key: 'scriptVersion', + }, { title: 'Szerver build time', key: 'serverBuildTime', type: 'date', }, - { - title: 'Script version', - key: 'scriptVersion', - }, { title: 'Weboldal build time', key: 'qminingPageBuildTime', @@ -116,10 +116,17 @@ export default function P2PInfo({ globalState, setGlobalState }) {
    - A weboldal peer to peer (p2p) megoldást implementál, így több szerverrel - együtt tud működni, és a más szerveren hozzáadott adatokat időközönként - elkéri, és hozzáadja a helyileg tárolt adatokhoz. Vagy valami ilyesmi - TODO: normális duma +
    + A weboldal peer to peer (p2p) megoldást implementál, folyamatosan + megosztja az új kérdéseket a lent megadott regisztrált szerverekkel, + és hozzáadja a kapott új kérdéseket a helyi adatbázishoz. +

    + Ha az egyik szerver kiesne, a script a megadott szerverek közül + választ egy újat. A felhasználók is szinkronizálva vannak, így a + jelenlegi jelszavaddal bármelyik másik oldalra be tudsz lépni +

    A szervert akár te is hostolhatod, érdeklődj a lentebb megadott + kontakton +


    Szerver P2P információja:

    @@ -166,6 +173,11 @@ export default function P2PInfo({ globalState, setGlobalState }) {
    ) })} + {p2pInfo.myPeers.length === 0 && ( +
    + Ennél a szervernél jelenleg nincs peer regisztrálva +
    + )} ) diff --git a/src/pages/pwRequest.jsx b/src/pages/pwRequest.jsx index 8d1ec3c..cef696b 100644 --- a/src/pages/pwRequest.jsx +++ b/src/pages/pwRequest.jsx @@ -4,7 +4,7 @@ import Link from 'next/link' import Header from '../components/header' import styles from './pwRequest.module.css' -import constants from '../constants.json' +import constants from '../constants' function fetchAvailablePWS() { return new Promise((resolve) => { @@ -107,10 +107,7 @@ export default function PwRequest({ globalData, globalState, setGlobalState }) { Minden felhasználó egyedi jelszót kap. Ne használjatok többen egy jelszót, mert egy idő után -biztonsági okokból- kidob a rendszer, ha ugyan az a felhasználó több helyen is belépve marad. A - jelszavakról bővebben a{' '} - - GYIK - {' '} + jelszavakról bővebben a GYIK{' '} vonatkozó részében olvashatsz.

    @@ -191,5 +188,5 @@ export default function PwRequest({ globalData, globalState, setGlobalState }) { - ); + ) } diff --git a/src/pages/ranklist.jsx b/src/pages/ranklist.jsx index f56bf98..b5cbf36 100644 --- a/src/pages/ranklist.jsx +++ b/src/pages/ranklist.jsx @@ -4,7 +4,7 @@ import Header from '../components/header' import LoadingIndicator from '../components/LoadingIndicator' import styles from './ranklist.module.css' -import constants from '../constants.json' +import constants from '../constants' const selectOptions = { newQuestions: { name: 'Beküldött új kérdések' }, diff --git a/src/pages/script.jsx b/src/pages/script.jsx index 7135ca0..26172e7 100644 --- a/src/pages/script.jsx +++ b/src/pages/script.jsx @@ -4,7 +4,7 @@ import { useQuery } from 'react-query' import Header from '../components/header' import Link from 'next/link' -import constants from '../constants.json' +import constants from '../constants' import ExternalLinkIcon from '../components/externalLinkIcon' import styles from './script.module.css' @@ -102,13 +102,9 @@ export default function Script() {
  • Ha be vagy jelentkezve, akkor a teszt oldalakon a megoldásokat kellene látnod egy felugró ablakban felül. Ha nem, akkor{' '} - - GYIK - + GYIK -be olvass bele, vagy{' '} - - írj üzenetet mi nem működik - + írj üzenetet mi nem működik
  • Példa felugró ablakokra: @@ -161,5 +157,5 @@ export default function Script() { - ); + ) } diff --git a/src/pages/thanks.jsx b/src/pages/thanks.jsx index 1e19253..38c0dd1 100644 --- a/src/pages/thanks.jsx +++ b/src/pages/thanks.jsx @@ -1,6 +1,6 @@ import React from 'react' import styles from './thanks.module.css' -import constants from '../constants.json' +import constants from '../constants' import Head from 'next/head' export default function Thanks() { diff --git a/src/pages/userfiles.jsx b/src/pages/userfiles.jsx index a7f610e..b82fc94 100644 --- a/src/pages/userfiles.jsx +++ b/src/pages/userfiles.jsx @@ -8,7 +8,7 @@ import UpDownVote from '../components/upDownVote' import Header from '../components/header' import styles from './userfiles.module.css' -import constants from '../constants.json' +import constants from '../constants' function vote(to, item) { return new Promise((resolve, reject) => { @@ -382,7 +382,11 @@ export default function UserFiles({
    {currDir && (
    { goBack() }} @@ -482,13 +486,14 @@ export default function UserFiles({ onClick={(e) => { e.stopPropagation() }} - className={'userId'}> + className={'userId'} + > {`#${user}`} ))}
    - ); + ) })} ) : ( @@ -513,7 +518,7 @@ export default function UserFiles({ )} - ); + ) } return ( @@ -535,10 +540,8 @@ export default function UserFiles({ vállalás nincs. {' '} Ha valami nem idevalót látsz, azt a{' '} - - Kapcsolat - {' '} - oldalon jelezd kérlek. Tudatos károkozásért ban jár. + Kapcsolat oldalon jelezd kérlek. Tudatos + károkozásért ban jár. )}
    @@ -602,5 +605,5 @@ export default function UserFiles({ )} - ); + ) } diff --git a/src/pages/validation.jsx b/src/pages/validation.jsx index 852a193..d47dc9e 100644 --- a/src/pages/validation.jsx +++ b/src/pages/validation.jsx @@ -3,7 +3,7 @@ import React, { useState, useEffect } from 'react' import Header from '../components/header' import styles from './validation.module.css' -import constants from '../constants.json' +import constants from '../constants' function fetchValidation() { return new Promise((resolve) => { @@ -37,8 +37,7 @@ export default function Validation() {
    Különböző okokból kellhet, hogy bizonyítsd hogy az oldalhoz van - hozzáférésed. Ebben az esetben ezzel a tokennel tudod: TODO: normális - duma + hozzáférésed. Ebben az esetben ezzel a tokennel tudod:
    {token &&
    {token}
    }