EN /HU | Belépés

WarpEngine BBS

A BBS-hálózat fájlterülete: azok a polcok, amelyeket a teletypegames.org WarpEngine-je a webböngésző nélküli gépeknek tart fenn. Válassz polcot, válassz címet, és vidd haza ZMODEM-mel, Commodore 64-en pedig XMODEM-mel.

Elérhető: teletypegames.org:2329, böngészőben pedig 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 Feedia BBS és a TTG Blog BBS. A WARP64U telnetes testvére: ugyanazok a polcok, de a C64-nek csak terminálprogram és modem kell hozzá, store-kliens nem.

Egy porton két arca van:

  • Modern: ANSI-színek, ablakok, menük és egér (SyncTERM, NetRunner, PuTTY, bbsweb). Letöltés ZMODEM-mel, XMODEM-1K-val vagy XMODEM-mel.
  • Commodore 64: PETSCII 40×25-ön, C64-es terminálprogramhoz (CCGMS, Novaterm, UltimateTerm) WiFi-modem mögött. Letöltés XMODEM-1K-val vagy XMODEM-mel.

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

A polcok

Polc Mappa az archívumon
Commodore 64 http://archive.teletypegames.org/C64/
Commodore Plus/4 http://archive.teletypegames.org/PLUS4/

A WarpEngine minden C64-es és Plus/4-es kiadásnál feltölti őket (lásd WARP64U). Mindegyikben van egy INDEX.TXT a polcformátumban (#SHELF 1, file|version|size|crc32|title|author|description), és a board öt perc után újra beolvassa. Egy fájl csak akkor megy ki, ha a mérete és a CRC-32-je egyezik az indexsorával. Ha egy cím közben frissült, a board azt kéri a hívótól, hogy olvassa be újra a polcot.

Letöltés

Modern terminálon a polcok kétpaneles ablakban nyílnak meg, utána a polc címei, jobb oldalon a kiválasztott címmel: verzió, méret, szerző, letöltésszám, leírás és a gombok.

Billentyű Művelet
Enter vagy Alt-Z ZMODEM: a SyncTERM, a NetRunner, a Qodem és a bbsweb magától indítja
Alt-K XMODEM-1K
Alt-M XMODEM
Alt-R A polc újraolvasása
F2 A polcok
Alt-X Kilépés

Commodore 64-en a menü számozva listázza a polcokat, a polc számozva a címeit, és egy cím külön oldalon nyílik meg. Ott az 1 XMODEM-1K-val küldi, az X XMODEM-mel, a Q visszalép. A menü H pontja a C64-en is elmagyarázza.

Az XMODEM nem visz fájlnevet. A protokoll kiválasztása után indítsd el a letöltést a terminálban (a download vagy receive menüjében), add meg a nevet, amit a board mutat (a polcon szereplő név .PRG nélkül), és a fájl programként kerül a lemezre: LOAD"ARIADNE",8,1, majd RUN. A board egy percig vár a terminálra, az Esc vagy a RUN/STOP feladja. Az XMODEM kitölti az utolsó blokkot, ezért a fájl legfeljebb 127 (XMODEM) vagy 1023 (XMODEM-1K) bájttal hosszabb lehet. Egy Commodore-program ugyanúgy betöltődik.

Az átvitelt a rubbs BBS::Zmodem-je és BBS::Xmodem-je végzi (rubbs 0.26.0): a bájtok a PETSCII-kódolót megkerülve mennek ki, a 0xFF duplázott telnet IAC-ként, az XMODEM pedig az átvitel idejére telnet BINARY módot kér. A TTG Gate BBS-en át a letöltés ugyanígy működik: a gateway továbbadja a BINARY-kérést a hívó termináljának (rubbs 0.26.1).

Beállítások és adatok

Változó Alapérték
WARP_ENGINE_BBS_ARCHIVE_URL http://archive.teletypegames.org az archívum sima HTTP-je
WARP_ENGINE_BBS_SHELVES config/shelves.yml a polcok és a mappáik
WARP_ENGINE_BBS_INDEX_TTL 300 ennyi másodpercig tartja meg egy polc INDEX.TXT-jét
WARP_ENGINE_BBS_DOWNLOAD_MAX 1048576 a legnagyobb elküldött fájl, bájtban
WARP_ENGINE_BBS_DOWNLOADS data/downloads.jsonl a sikeres letöltések, soronként egy JSON

Új polc = egy új bejegyzés a config/shelves.yml-ben (id, name, path, about); a masterre pusholás élesíti. A letöltésnaplóból jönnek a címek mellett látható számok. A boardnak nincsenek titkai.

A motorháztető alatt

A masterre pusholás után a Woodpecker élesíti (RuboCop, compose-ellenőrzés, ci-deploy warp-engine-bbs). A konténer neve warp-engine-bbs, a helye /srv/stacks/warp-engine-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 (ShelfModel, TitleModel, a polc-, archívum- és letöltés-repository, a CatalogService és a composition root, WarpEngineBBS) semmit sem tud a telnetről, a lib/ui-ban pedig a UI::Modern, a UI::Petscii és a két arc közös protokollrésze, a UI::Transfer van.