EN /HU | Belépés

TTG Wiki BBS

A Teletype Games wikije telneten: élőben böngészi ezt a wikit a JSON API-ján át, az oldalakat lapozható, kereshető BBS-menükbe rendezi. Szupervizor-belépéssel a privát oldalak is megnyílnak.

Elérhető: teletypegames.org:2325, böngészőben a bbsweb-en, és a TTG Gate BBS-en át

Áttekintés

Ruby alkalmazás a rubbs gemre építve, mint a Teletype BBS. Saját repója (bbs/wiki-bbs) és saját stackje van, a wikit az interstack hálózaton olvassa. Egy porton két arca van. A hívás a rubbs BBS::Terminal kérdésével indul: a board legfeljebb 1,5 másodpercig várja a telnetválaszokat, és a 40 oszlopnál szélesebb ablak modern terminál; a 40 oszlop vagy a válasz hiánya (a WiFi-modem mögötti C64 sima TCP-t beszél) Commodore-nak számít. Az 1 a modern arcot, a 2 a C64-et választja, a RETURN elfogadja a tippet.

A modern arc

Teljes képernyős, Norton Commander-stílusú kétpaneles böngésző: balra az oldalfa (útvonal-mélység szerint behúzva), jobbra a kiválasztott oldal ANSI-markdownként. A böngésző maximalizálva nyílik; az F5 / Alt-Enter ablakká alakítja és vissza.

Billentyű Művelet
Fel / Le Oldal választása (a jobb panel újratöltődik)
Tab A fókusz az olvasópanelre
PgUp / PgDn / Home / End Az olvasó görgetése
F2 A böngésző újranyitása
F5 / Alt-Enter Ablak / teljes képernyő
F8 A wiki-index frissítése (az oldal-cache-t is üríti)
F10 Menüsor
Alt-X / Esc Kilépés / ablak bezárása

A *-gal jelölt oldalak privátok (a wikin belépéshez kötöttek); a Wiki > Supervisor login feloldja őket, ugyanez a menüpont zárja vissza. Az egér is működik (xterm SGR), a görgővel együtt.

A C64-es arc

PETSCII 40×25-ön. Ugyanaz az oldalfa, képernyőnként egy szint, a rubbs számozott kurzoros menüjeként (BBS::Selector): az aloldalas oldal jele >, a privát oldalé *. A CRSR mozgatja a sávot (balra-jobbra lapoz), a beírt szám kijelöl egy oldalt, a RETURN megnyitja vagy egy szinttel lejjebb visz, a Q (vagy ←) visszalép. Egy oldal képernyőnként jelenik meg (RETURN: tovább, Q: vissza), a végén a nyilvános címével. A legfelső szinten az S a szupervizor-belépés, az R újraolvassa az indexet.

Adatforrás

A wiki két végpontja (sablonok a themes/ttgwiki2/templates/*.json.twig-ben, oldalak a pages/custom/-ban):

  • GET /custom/sitemap.json — minden routolható oldal: route, title, modified, updatedAt, tags és private (igaz, ha az oldalnak vagy egy ősének access: site.login van a frontmatterében). Törzs nélkül.
  • GET /custom/page.json?route=/platforms/tic80 — egy oldal a markdown-jával és a html-jével. Privát oldalhoz a wiki SUPERVISOR_PASSWORD-jével egyező token= kell, különben a válasz {"error": "forbidden"}; ismeretlen útvonalra {"error": "not_found"}.

Az oldalindex induláskor egyszer töltődik be, és minden munkamenet közösen használja; az F8 (C64-en R) mindenkinek újraolvassa. Ha induláskor a wiki nem válaszol (egy stack-deploy a Gravot is újraindítja), a board akkor is elindul, és 10 másodpercenként újrapróbálja az indexet. Az oldaltörzsek 5 percig cache-ben maradnak.

A zárat a wiki oldala kényszeríti ki: a Grav entrypointja a SUPERVISOR_PASSWORD-öt a site configjába teszi, és a JSON API egyező token nélkül nem adja ki a privát törzseket. A board a WIKI_BBS_SUPERVISOR_PASSWORD-öt küldi tokenként, ezért a kettőnek egyeznie kell; a compose egy változóból köti be mindkettőt.

A motorháztető alatt

Változó Alapérték Mire való
BBS_PORT 2323 Telnetport a konténerben
BBS_MAX_SESSIONS 100 Egyszerre hány hívó (a compose 50-et állít)
BBS_IDLE 900 Tétlenségi bontás, másodpercben
WIKI_BBS_URL http://localhost:9120 A wiki alap-URL-je (a szerveren http://wiki-grav az interstack hálózaton)
WIKI_BBS_SUPERVISOR_PASSWORD üres Feloldja a privát oldalakat, és API-tokenként megy a wikinek; üresen zárva maradnak

A kód a házi szerkezetet követi: lib/domain/ (PageModel, WikiRepository, WikiService, SupervisorService, és a WikiBBS, a környezetet olvasó kompozíciós gyökér) és lib/ui/ (UI::Modern, a kétpaneles böngésző; UI::Petscii a Browser-ével). A teljes leírás a repó README-je.

A szolgáltatás és a konténer neve wiki-bbs, a helye /srv/stacks/wiki-bbs, nyilvános portja 2325. A masterre pusholás a Woodpeckerből élesít (RuboCop, compose-ellenőrzés, ci-deploy wiki-bbs); a Grav-ot http://wiki-grav néven éri el, ez a wiki konténerének neve az interstack-en. Az entrypoint induláskor frissíti a rubbs-t. A többi board a BBS-hálózat oldalon van.