EN /HU | Belépés

Pixelia BBS

A BBS-hálózat művészeti boardja: klasszikus ANSI-art a 16colo.rs archívumából, egy közös 40×25-ös vászon, amelyre minden hívó egyszerre fest, és a Fal a róla mentett művekkel.

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

Áttekintés

Ruby-alkalmazás a rubbs gemre építve, mint a Teletype BBS, a Scriptorium BBS és a Commodex BBS.

Két arca van egy porton:

  • Modern: ANSI-színek, ablakok, menük és egér (SyncTERM, NetRunner, PuTTY, bbsweb). Egy mű a teljes képernyőn, a vászon ablakban, kattintható palettával.
  • Commodore 64: PETSCII 40×25-ön, C64-es terminálprogramhoz (CCGMS, Novaterm, UltimateTerm) WiFi-modem mögött. A vászon maga a C64 képernyője, egy ANSI-mű pedig 40 oszloponként látszik.

A hívás a rubbs BBS::Terminal kérdésével indul: a RETURN elfogadja a tippet, az 1 a modern arcot, a 2 a C64-est választja.

A galéria

16colo.rs. A board a 16colo.rs archívumát a nyilvános API-ján át böngészi: év, pack, fájl. A szöveges művészeti fájlokat listázza (.ans, .asc, .diz, .nfo, .txt, .ice, és minden fájlt, amelynek SAUCE-a ASCII, ANSI vagy ANSiMation), a címükkel, alkotójukkal, csapatukkal és 16colo.rs-címükkel. Semmit sem tükröz: egy fájlt akkor tölt le, amikor valaki megnyitja (legfeljebb 512 KB), és 100 MB-os lemezes gyorsítótárban tartja; a listák egy óráig maradnak a memóriában.

A műveket a board maga rajzolja ki: beolvassa a SAUCE-rekordot, a CP437-et, az ANSI.SYS-vezérlőkódokat és az iCE-színeket, a SAUCE-szélességnél tör, és 1000 sornál megáll. Modern terminálon a mű a teljes képernyőn görgethető. C64-en 40 oszlopos oldalakban jön: a CGA-színek a legközelebbi C64-színre kerülnek, a színes háttérből inverz lesz, és az R vagy a CRSR jobbra lép tovább a szélesebb műveken.

A Fal a vászonról mentett műveket tartja, a legújabbal kezdve, címmel, névvel és dátummal, mindkét arcon natívan kirajzolva.

A vászon

Egyetlen közös 40×25-ös vászon, akkora, mint a C64 képernyője, így mindkét arc cellánként ugyanazt mutatja. Aki rajta van, néhány másodpercen belül látja a többiek vonásait. Egy cellában egy karakter van a C64 16 színének egyikével, tintaként feketén vagy inverzben; ennyit tud megjeleníteni egy C64-es cella, így a kép mindenhol ugyanolyan. A karakterek azok, amelyek a Unicode-terminálon és a PETSCII-ben is megvannak: betűk, számok, a legtöbb írásjel, keretvonalak, blokkok és félblokkok.

Modern terminálon:

Billentyű Művelet
F3 A vászon megnyitása
Nyilak, gépelés Mozgás, a karakter megfestése
F7, F8 Előző / következő tinta (vagy kattints egy színre)
F9 vagy Ctrl-R Inverz be és ki
Insert vagy Ctrl-G Glifamód: a betűk az ecset glifjeit festik
Egér Kattintás a kurzort teszi oda, húzás vagy jobb klikk fest
Ctrl-Z vagy Ctrl-U A saját utolsó cellák visszavonása
Ctrl-S Mentés a Falra (az űrlapon Alt-S)
F2 16colo.rs évek szerint
F4 A Fal
Alt-X Kilépés

Commodore 64-en: a CRSR mozgat, a gépelés fest, a DEL töröl, az F3/F4 tintát vált, az F5 az inverzt kapcsolja, az F6 a glifamódot (a betűk a billentyűzet szerint vannak kiosztva: Q W E / A S D / Z X C a keretsarkok, a T-elágazások és a kereszt, a G teli blokk, a T és a B a felső és az alsó fél). A RETURN, a RUN/STOP vagy a ← megnyitja a parancssort: tinta, inverz, glifek, mentés, súgó, kilépés. Az F1-hez és az F7-hez nem nyúl, azokat az UltimateTerm tartja meg. A board csak a megváltozott cellákat küldi, cellánként pár bájtot, így a vászon 1200 baudon is fürge.

Korlátok: hívásonként másodpercenként 20 cella, hívásonként ötpercenként egy mentés a Falra, a cím legfeljebb 32, a név 16 karakter.

Beállítások és adatok

Változó Alapérték
PIXELIA_BBS_DATA data a vászon, a Fal, a gyorsítótár
PIXELIA_BBS_API_URL https://api.16colo.rs a 16colo.rs API
PIXELIA_BBS_SITE_URL https://16colo.rs a fájlok és a mutatott linkek
PIXELIA_BBS_USER_AGENT PixeliaBBS/1.0 (+https://teletypegames.org; …) a 16colo.rs felé küldve
PIXELIA_BBS_API_TTL 3600 ennyi másodpercig marad meg egy lista
PIXELIA_BBS_MAX_FILE_KB 512 a legnagyobb letöltött fájl
PIXELIA_BBS_CACHE_MB 100 a gyorsítótár mérete
PIXELIA_BBS_MAX_ROWS 1000 egy műből kirajzolt sorok
PIXELIA_BBS_PAINT_RATE 20 cella másodpercenként, hívásonként
PIXELIA_BBS_WALL_COOLDOWN 300 két mentés között ennyi másodperc egy hívásban

A vászon a data/canvas.json (kétmásodpercenként írva), a Fal műveként egy JSON-fájl a data/works/-ben. Az adminok a szerveren moderálnak:

SH
docker exec pixelia-bbs bin/works list           # a Fal
docker exec pixelia-bbs bin/works show ID
docker exec pixelia-bbs bin/works remove ID
docker exec pixelia-bbs bin/canvas clear         # a data/archive/-ba menti, aztán letörli a vásznat

A boardnak nincs titka.

A motorháztető alatt

A masterre pusholás a Woodpeckerből élesít (RuboCop, compose-ellenőrzés, ci-deploy pixelia-bbs); a konténer neve pixelia-bbs, a helye /srv/stacks/pixelia-bbs, a data/ megmarad a deployok között. Az entrypoint induláskor frissíti a rubbs-t.

A kód a házi rétegezést követi: a lib/domain (a szín-, glif-, vászon-, mű-, SAUCE- és art-modell; a 16colo.rs-, gyorsítótár-, vászon- és mű-repository; AnsiRenderService, GalleryService, CanvasService, WallService; a PixeliaBBS kompozíciós gyökér) semmit sem tud a telnetről, a lib/ui pedig a UI::Modern-t a vászon-widgettel és a nézegetővel, valamint a UI::Petscii-t tartalmazza, amelynek képernyőmásolata csak a különbségeket küldi.