EN /HU | Belépés

BBS-szerver

A Teletype Games BBS egy telnetes, Synchronet-stílusú hirdetőtábla: üzenetek, chat, hírek, útmutatók és szoftverek egyetlen retró csomópontban.

Elérhető: games.teletype.hu:2323

Áttekintés

Ruby alkalmazás a rubbs gemre építve, ami a saját BBS-keretrendszerünk — ez adja az ANSI-felületet, a menüsort, az egymásra tornyozott modális ablakokat, a Telnet-szervert és az xterm egértámogatást. A bbs-server repóban csak a Teletype-specifikus részek vannak: szolgáltatás-bekötések, ablakdefiníciók, formázók.

Csatlakozáskor a felhasználó megad egy nevet (üresen hagyva Anonymous), majd megnyílik a teljes képernyős felület.

Funkciók

Közösség

  • Több üzenőfal — General / Tech / Off-Topic / Sysop, falanként egy CSV a data/boards/ alatt. Az új hozzászólások többsoros TextArea-ban készülnek, legfeljebb 1000 karakterrel.
  • Élő chat — broadcast-csomópont, kb. 1 Hz-es lekérdezéssel, belépéskor előzményvisszajátszással.
  • Online felhasználók és utolsó betelefonálók — ki van most fent, plusz egy belépési napló, amely a hirdetőtáblát is táplálja.
  • Felhasználói profil — aláírás / hely / honlap / jegyzetek felhasználónevenként.
  • Belépési hirdetőtábla — online létszám, összes üzenet, legutóbbi betelefonálók.
  • Sysop-konzol — statisztikák és broadcast, csak a BBS_SYSOPS listában szereplő felhasználóknak.

Tartalom

  • WikiolvasóGrav blogbejegyzések és HowTo-útmutatók osztott nézetben: balra a címek, jobbra az oldal. A markdown szélességre tördelt ANSI-vá alakul.
  • Játékkatalógus — a Teletype Games API böngészése; minden kártyán ott a sztori, valamint a játék / letöltés / forrás linkek.

Technikai

  • xterm egér — kattintható menük, gombok és listaelemek, görgethető listák.
  • Asztali art — tegyél .ans / .ansi / .asc / .nfo / .txt fájlokat oda, ahová a BBS_DESKTOP_ART mutat. A CP437-es art automatikusan dekódolódik, a SAUCE-metaadat lekerül. Ha könyvtárat adsz meg, munkamenetenként véletlenszerű fájlt választ.
  • Tétlenségi bontás 10 perc után.
  • Perzisztens állapot — az üzenőfalak, a betelefonálási napló és a profilok CSV-fájlok a data/ alatt, ami Docker-kötet, így túlélik az újraindítást.

Menük és billentyűk

Menü Elemek
File Bulletin · System Info · Exit
Messages Boards… · New Post…
Files Blog Posts · HowTo Guides · Game Catalog
Users Online · Last Callers · Profile…
Chat Open chat
Sysop Console (csak sysopoknak)
Help About · Keys
Billentyű Művelet
Alt+betű A megfelelő felső menü megnyitása
F10 A legbaloldalibb menü megnyitása
F1 Súgó
F2 Üzenőfalak
F3 Gyors hozzászólás
F4 Chat
Tab / Shift-Tab Fókuszléptetés az ablakon belül
Enter A fókuszált gomb aktiválása / beküldés
Esc A legfelső ablak vagy menü bezárása

Konfiguráció

Másold az env-example fájlt .env néven:

Változó Alapérték Leírás
BBS_PORT 2323 TCP-port.
BBS_SYSOPS üres Sysop-felhasználónevek vesszővel elválasztva.
WEBAPP_WIKIJS_TOKEN Bearer token a Grav wiki API-hoz.
BOARDS_PATH data/boards Falankénti CSV-fájlok.
MESSAGES_PATH data/messages.dat Örökölt, egyfalas fájl; az első futáskor átkerül a General falra.
LAST_CALLERS_PATH data/last_callers.csv Belépési napló.
PROFILE_PATH data/profiles.csv Felhasználói profilok.
BBS_DESKTOP_ART data/art/teletype.ansi Egy ANSI-fájl, vagy egy könyvtár (munkamenetenként véletlenszerűen).

Futtatás

BASH
docker compose up --build     # vagy Ruby 3.x-szel: bundle install && ruby bbs.rb
telnet localhost 2323

Projektszerkezet

TEXT
bbs.rb                       belépési pont — szolgáltatás-bekötés + Application-definíció
lib/
  domain/
    repository/              online felhasználók, falak, wiki, katalógus, utolsó betelefonálók, profilok
    service/                 online, fal, wiki, játékok, chat, utolsó betelefonálók, profil
    model/                   értékobjektumok (MessageModel, GameModel, …)
  bbs/ui/                    ablakonkénti builderek és formázók
data/
  boards/<id>.csv            falankénti üzenetek (automatikusan jön létre)
  last_callers.csv           belépési napló
  profiles.csv               felhasználói profilok

Repó

https://git.teletypegames.org/bbs/bbs-server