From d73d5b08053acb9801bf8383e1cfb04bcd8686f6 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Sat, 26 Mar 2016 11:16:12 -0600 Subject: [PATCH 1/4] Update luciano_blocktronics theme with conf change --- mods/themes/luciano_blocktronics/CCHANGE.ANS | Bin 0 -> 2182 bytes mods/themes/luciano_blocktronics/theme.hjson | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 mods/themes/luciano_blocktronics/CCHANGE.ANS diff --git a/mods/themes/luciano_blocktronics/CCHANGE.ANS b/mods/themes/luciano_blocktronics/CCHANGE.ANS new file mode 100644 index 0000000000000000000000000000000000000000..39279a9884248c3db9d934ab32eda4248eef52a5 GIT binary patch literal 2182 zcmb_dyK)mT6m>erElt3~j2de8;j95y!DAANghz%nu9!?Z1ReiHerK2HPcocy?!CJv zNr^LANh|4|$Gy@ncGY@Wt=m;z?CNT>*tJa_1~hzem@pU-)jwlaC8DyMCfyJ_eK?NNYz(^Bh zQSfJYIT;V&1P!^c3?`6{ZE}$bfse?_V<|L=fP}oj4B3X~h?H;3=&lX$Y?vs`Q5l1T zaXz5C4Gcp~pvO{-l1Kyd%W9$LBaz^NjeFuBO9uP?o2i$%p?d*{m(?Uxy99QvV=X97X}AWXSLPZJIvK%Q7q zU<7VsK~qf#(`jP`OCYR#fD3c6+NugDQ-;Y2MIDh;rOE=0zz)B(S|n3fg%^j8vzge*43M&S&MFM% z*8MnkUtl$I8|Eqcga$LycwdEUrdu?P74pQatj821ocvP)p+YTa^BN4M5@JNrr53An zel1*?k&+24t|%=3PPktP$}=>fcucpv%YUS)%C~*$(bvLT(GBO2CKeY0AtuzZE(5G? zP%ENNjSo;%vt$fuJ`IWJG6{SY&K8!bTcCx=?1;e|+Ax4F46?@s;v-7nz)!@4WqfTb zqOqK6UTsd8S9+Q2$4S?QX?=Qm54ODgvAW5J&oHX;TVv4V{PWkf=#S@Vdx5oB@(Rx; zf41f7$DXTiKd!F7&!1l$f8A`Wiucfe`ZZO3R9E%##gp0W;Na8jaHikW5AV*><;k&) G#^+yG9pT~t literal 0 HcmV?d00001 diff --git a/mods/themes/luciano_blocktronics/theme.hjson b/mods/themes/luciano_blocktronics/theme.hjson index 44bd8131..b6d98b9a 100644 --- a/mods/themes/luciano_blocktronics/theme.hjson +++ b/mods/themes/luciano_blocktronics/theme.hjson @@ -170,6 +170,19 @@ } } + messageAreaChangeCurrentConference: { + config: { + listFormat: "|00|15{index} |07- |03{name}" + focusListFormat: "|00|19|15{index} - {name}" + } + mci: { + VM1: { + width: 26 + height: 19 + } + } + } + messageAreaChangeCurrentArea: { config: { listFormat: "|00|15{index} |07- |03{name}" From 00dcc2750b57b2fda0c279d9f1355265180c0302 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Mon, 28 Mar 2016 22:58:06 -0600 Subject: [PATCH 2/4] Various minor doc updates --- README.md | 7 +++++-- docs/config.md | 38 ++++++++++++++++++++++++++++++++------ docs/index.md | 2 +- docs/msg_networks.md | 4 ++++ 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b1d12540..49906d2f 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ ENiGMA½ is a modern BBS software with a nostalgic flair! ## In the Works * More ES6+ usage, and **documentation**! * File areas -* ACS support for more areas +* More ACS support coverage * SysOp dashboard (ye ol' WFC) -* Missing functionality such as searching, pipe code support in message areas, etc. +* Missing functionality such as searching, message area coloring, etc. * String localization * A lot more! Feel free to request features via [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) @@ -61,6 +61,9 @@ Please see the [Quickstart](docs/index.md#quickstart) * [M. Griffin](https://github.com/M-griffin), author of [Enthral BBS](https://github.com/M-griffin/Enthral), [Oblivion/2 XRM](https://github.com/M-griffin/Oblivion2-XRM) and [EtherTerm](https://github.com/M-griffin/EtherTerm)! * [Caphood](http://www.reddit.com/user/Caphood), supreme SysOp of [BLACK ƒlag](http://www.bbsnexus.com/directory/listing/blackflag.html) BBS * Luciano Ayres of [Blocktronics](http://blocktronics.org/), creator of the "Mystery Skulls" default ENiGMA½ theme! +* Sudndeath for Xibalba ANSI work! +* Jack Phlash for kick ass ENiGMA½ and Xibalba ASCII (Check out [IMPURE60](http://pc.textmod.es/pack/impure60/)!!) +* Avon of [Agency BBS](http://bbs.geek.nz/) and fsxNet ## License Released under the [BSD 2-clause](https://opensource.org/licenses/BSD-2-Clause) license: diff --git a/docs/config.md b/docs/config.md index be2cad75..afdcf4e2 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,12 +1,12 @@ -## Configuration +# Configuration Configuration files in ENiGMA½ are simple UTF-8 encoded [HJSON](http://hjson.org/) files. HJSON is just like JSON but simplified and much more resilient to human error. -### System Configuraiton +## System Configuraiton The main system configuration file, `config.hjson` both overrides defaults and provides additional configuration such as message areas. The default path is `~/.config/enigma-bbs/config.hjson` though you can override this with the `--config` parameter when invoking `main.js`. Values found in core/config.js may be overridden by simply providing the object members you wish replace. **Windows note**: **~** resolves to *C:\Users\YOURLOGINNAME\* on modern installations, e.g. *C:\Users\NuSkooler\\.config\enigma-bbs\config.hjson* -#### Example: System Name +### Example: System Name `core/config.js` provides the default system name as follows: ```javascript general : { @@ -21,8 +21,34 @@ general: { } ``` -#### A Sample Configuration -Below is a **sample** `config.hjson` illustrating various (but not all!) elements that can be configured / tweaked. +### Specific Areas of Interest + +#### Archivers +External archivers can be configured for various tasks such as EchoMail bundle handling. + +TODO: Document further inc. Members & defaults + +**Example**: + +```hjson +archivers: {' + zip: { + // byte signature in HEX of ZIP archives + sig: "504b0304" + // offset of sig + offset: 0 + compressCmd: "7za" + compressArgs: [ "a", "-tzip", "{archivePath}", "{fileList}" ] + decompressCmd: "7za" + decompressArgs: [ "e", "-o{extractPath}", "{archivePath}" ] + } +} +``` + +### A Sample Configuration +Below is a **sample** `config.hjson` illustrating various (but certainly not all!) elements that can be configured / tweaked. + +**This is for illustration purposes! Do not cut & paste this configuration!** ```hjson @@ -106,5 +132,5 @@ Below is a **sample** `config.hjson` illustrating various (but not all!) element } ``` -### Menus +## Menus TODO: Documentation on menu.hjson, etc. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 181de7a2..6e2e4bb1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -35,7 +35,7 @@ npm install ``` ## Generate a SSH Private Key -To utilize the SSH server, a SSH Private Key will need generated. This step can be skipped if desired by disabling the SSH server in `config.hjson`. +To utilize the SSH server, a SSH Private Key will need generated. This step can be skipped if you do not wish to enable SSH access. ```bash openssl genrsa -des3 -out ./misc/ssh_private_key.pem 2048 ``` diff --git a/docs/msg_networks.md b/docs/msg_networks.md index 2fe4832a..5660643f 100644 --- a/docs/msg_networks.md +++ b/docs/msg_networks.md @@ -1,6 +1,10 @@ # Message Networks Message networks are configured in `messageNetworks` section of `config.hjson`. Each network type has it's own sub section such as `ftn` for FidoNet Technology Network (FTN) style networks. Message Networks tie directly with [Message Areas](msg_conf_area.md) that are also defined in `config.hjson`. +**Members**: + * `ftn`: Configure FTN networks (described below) + * `originLine` (optional): Overrwrite the default origin line for networks that support it. For example: `originLine: Xibalba - xibalba.l33t.codes:44510` + ## FidoNet Technology Network (FTN) FTN networks are configured under the `messageNetworks::ftn` section of `config.hjson`. From 8a0ab7e2bc73bf7dcf60fd148efc043957f993fc Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Wed, 30 Mar 2016 18:40:33 -0600 Subject: [PATCH 3/4] Add link to binkd + enigma blog --- docs/msg_networks.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/msg_networks.md b/docs/msg_networks.md index 5660643f..ca0afe17 100644 --- a/docs/msg_networks.md +++ b/docs/msg_networks.md @@ -118,4 +118,7 @@ See [Later text parsing documentation](http://bunkat.github.io/later/parsers.htm } } } -``` \ No newline at end of file +``` + +## More Information +* [ENiGMA 1/2 + Binkd on CentOS 7](https://www.l33t.codes/enigma-12-binkd-on-centos-7/) \ No newline at end of file From fbf9bc49f939cff27fc3c2db62b0b985c3ed0193 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Sat, 2 Apr 2016 00:28:25 -0600 Subject: [PATCH 4/4] Better FTN outbound handing of zones...I think --- core/scanner_tossers/ftn_bso.js | 48 ++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/core/scanner_tossers/ftn_bso.js b/core/scanner_tossers/ftn_bso.js index be633d77..db0e707b 100644 --- a/core/scanner_tossers/ftn_bso.js +++ b/core/scanner_tossers/ftn_bso.js @@ -59,19 +59,35 @@ function FTNMessageScanTossModule() { this.getDefaultNetworkName = function() { if(this.moduleConfig.defaultNetwork) { - return this.moduleConfig.defaultNetwork; + return this.moduleConfig.defaultNetwork.toLowerCase(); } const networkNames = Object.keys(Config.messageNetworks.ftn.networks); if(1 === networkNames.length) { - return networkNames[0]; + return networkNames[0].toLowerCase(); } }; + + this.getDefaultZone = function(networkName) { + if(_.isNumber(Config.messageNetworks.ftn.networks[networkName].defaultZone)) { + return Config.messageNetworks.ftn.networks[networkName].defaultZone; + } + + // non-explicit: default to local address zone + const networkLocalAddress = Config.messageNetworks.ftn.networks[networkName].localAddress; + if(networkLocalAddress) { + const addr = Address.fromString(networkLocalAddress); + return addr.zone; + } + }; + + /* this.isDefaultDomainZone = function(networkName, address) { - const defaultNetworkName = this.getDefaultNetworkName(); + const defaultNetworkName = this.getDefaultNetworkName(); return(networkName === defaultNetworkName && address.zone === this.moduleConfig.defaultZone); }; + */ this.getNetworkNameByAddress = function(remoteAddress) { return _.findKey(Config.messageNetworks.ftn.networks, network => { @@ -115,6 +131,7 @@ function FTNMessageScanTossModule() { return _.isString(msg.meta.FtnKludge.MSGID) && msg.meta.FtnKludge.MSGID.length > 0; }; + /* this.getOutgoingPacketDir = function(networkName, destAddress) { let dir = this.moduleConfig.paths.outbound; if(!this.isDefaultDomainZone(networkName, destAddress)) { @@ -123,6 +140,31 @@ function FTNMessageScanTossModule() { } return dir; }; + */ + + this.getOutgoingPacketDir = function(networkName, destAddress) { + networkName = networkName.toLowerCase(); + + let dir = this.moduleConfig.paths.outbound; + + const defaultNetworkName = this.getDefaultNetworkName(); + const defaultZone = this.getDefaultZone(networkName); + + let zoneExt; + if(defaultZone !== destAddress.zone) { + zoneExt = '.' + `000${destAddress.zone.toString(16)}`.substr(-3); + } else { + zoneExt = ''; + } + + if(defaultNetworkName === networkName) { + dir = paths.join(dir, `outbound${zoneExt}`); + } else { + dir = paths.join(dir, `${networkName}${zoneExt}`); + } + + return dir; + }; this.getOutgoingPacketFileName = function(basePath, messageId, isTemp) { //