Add initial QWK docs, update FTN, etc.

This commit is contained in:
Bryan Ashby 2020-05-05 19:01:47 -06:00
parent 7fb10418f0
commit 67ac86ac05
No known key found for this signature in database
GPG Key ID: B49EB437951D2542
6 changed files with 185 additions and 97 deletions

View File

@ -187,6 +187,8 @@ qwk-export arguments:
--user USER User in which to export for. Defaults to the SysOp.
--after TIMESTAMP Export only messages with a timestamp later than
TIMESTAMP.
--no-qwke Disable QWKE extensions.
--no-synchronet Disable Synchronet style extensions.
`
};

View File

@ -521,6 +521,13 @@ function exportQWKPacket() {
const userName = argv.user || '-';
const writerOptions = {
enableQWKE : !(false === argv.qwke),
enableHeadersExtension : !(false === argv.synchronet),
enableAtKludges : !(false === argv.synchronet),
archiveFormat : argv.format || 'application/zip'
};
let totalExported = 0;
async.waterfall(
[
@ -578,10 +585,10 @@ function exportQWKPacket() {
},
(user, Message, messageIds, callback) => {
const { QWKPacketWriter } = require('../qwk_mail_packet');
const writer = new QWKPacketWriter({
const writer = new QWKPacketWriter(Object.assign(writerOptions, {
bbsID,
user,
});
}));
writer.on('ready', () => {
async.eachSeries(messageIds, (messageId, nextMessageId) => {

View File

@ -41,6 +41,8 @@
- [Message networks]({{ site.baseurl }}{% link messageareas/message-networks.md %})
- [BSO Import & Export]({{ site.baseurl }}{% link messageareas/bso-import-export.md %})
- [Netmail]({{ site.baseurl }}{% link messageareas/netmail.md %})
- [QWK]({{ site.baseurl }}{% link messageareas/qwk.md %})
- [FTN]({{ site.baseurl }}{% link messageareas/ftn.md %})
- Art
- [General]({{ site.baseurl }}{% link art/general.md %})

105
docs/messageareas/ftn.md Normal file
View File

@ -0,0 +1,105 @@
---
layout: page
title: FidoNet-Style Networks (FTN)
---
## FidoNet-Style Networks (FTN)
TODO: preamble
### Configuration
1. `messageNetworks.ftn.networks`: declares available networks.
2. `messageNetworks.ftn.areas`: establishes local area mappings and per-area specifics.
3. `scannerTossers.ftn_bso`: general configuration for the scanner/tosser (import/export). This is also where we configure per-node settings.
:information_source: ENiGMA½'s `ftn_bso` module is **not a mailer** and makes **no attempts** to perform packet transport! An external utility such as Binkd is required for this task.
#### Networks
The `networks` block is a per-network configuration where each entry's ID (or "key") may be referenced elsewhere in `config.hjson`. For example, consider two networks: ArakNet (`araknet`) and fsxNet (`fsxnet`):
```hjson
{
messageNetworks: {
ftn: {
networks: {
// it is recommended to use lowercase network tags
fsxnet: {
defaultZone: 21
localAddress: "21:1/121"
}
araknet: {
defaultZone: 10
localAddress: "10:101/9"
}
}
}
}
}
```
#### Areas
The `areas` section describes a mapping of local **area tags** configured in your `messageConferences` (see [Configuring a Message Area](configuring-a-message-area.md)) to a message network (described above), a FTN specific area tag, and remote uplink address(s). This section can be thought of similar to the *AREAS.BBS* file used by other BBS packages.
When ENiGMA½ imports messages, they will be placed in the local area that matches key under `areas` while exported messages will be sent to the relevant `network`.
| Config Item | Required | Description |
|-------------|----------|----------------------------------------------------------|
| `network` | :+1: | Associated network from the `networks` section above |
| `tag` | :+1: | FTN area tag (ie: `FSX_GEN`) |
| `uplinks` | :+1: | An array of FTN address uplink(s) for this network |
Example:
```hjson
{
messageNetworks: {
ftn: {
areas: {
// it is recommended to use lowercase area tags
fsx_general: // *local* tag found within messageConferences
network: fsxnet // that we are mapping to this network
tag: FSX_GEN // ...and this remote FTN-specific tag
uplinks: [ "21:1/100" ] // a single string also allowed here
}
}
}
}
}
```
:information_source: You can import `AREAS.BBS` or FTN style `.NA` files using [oputil](/docs/admin/oputil.md)!
#### A More Complete Example
Below is a more complete *example* illustrating some of the concepts above:
```hjson
{
messageNetworks: {
ftn: {
networks: {
fsxnet: {
defaultZone: 21
localAddress: "21:1/121"
}
}
areas: {
fsx_general: {
network: fsxnet
// ie as found in your info packs .NA file
tag: FSX_GEN
uplinks: [ "21:1/100" ]
}
}
}
}
}
```
:information_source: Remember for a complete FTN experience, you'll probably also want to configure [FTN/BSO scanner/tosser](bso-import-export.md) settings.
#### FTN/BSO Scanner Tosser
Please see the [FTN/BSO Scanner/Tosser](bso-import-export.md) documentation for information on this area.

View File

@ -3,103 +3,23 @@ layout: page
title: Message Networks
---
## Message Networks
ENiGMA½ considers all non-ENiGMA½, non-local messages (and their networks, such as FTN "external". That is, messages are only imported and exported from/to such a networks. Configuring such external message networks in ENiGMA½ requires three sections in your `config.hjson`.
ENiGMA½ considers all non-ENiGMA½, non-local messages (and their networks, such as FidoNet-Style (FTN) "external". That is, messages are only imported and exported from/to such a networks. Configuring such external message networks in ENiGMA½ requires three sections in your `config.hjson`.
1. `messageNetworks.<networkType>.networks`: declares available networks.
2. `messageNetworks.<networkType>.areas`: establishes local area mappings and per-area specifics.
3. `scannerTossers.<name>`: general configuration for the scanner/tosser (import/export). This is also where we configure per-node settings.
All message network configuration occurs under the `messageNetworks.<name>` block in `config.hjson` (where name is something such as `ftn` or `qwk`). Similarly, if a scanner/tosser module exists for the network it can be configured under `scannerTossers.<name>`. An example of this is the [FTN/BSO scanner/tosser](bso-import-export.md) module where name is `ftn_bso`.
### FTN Networks
The most basic of external message network configurations generally comprises of two sections within `config.hjson`:
1. `messageNetworks.<name>.networks`: Global/general configuration for a particular network where `<name>` is for example `ftn` or `qwk`.
2. `messageNetworks.<name>.areas`: Provides mapping of ENiGMA½ **area tags** to their external counterparts.
Finally, a related section under `scannerTossers.<name>` may provide configuration for scanning (importing) and tossing (exporting) messages for a particular network type. As an example, FidoNet-Style networks often work with BinkleyTerm Style Outbound (BSO) and thus the [FTN/BSO scanner/tosser](bso-import-export.md) module.
### Supported Networks
#### FidoNet-Style (FTN)
FidoNet and FidoNet style (FTN) networks as well as a [FTN/BSO scanner/tosser](bso-import-export.md) (`ftn_bso` module) are configured via the `messageNetworks.ftn` and `scannerTossers.ftn_bso` blocks in `config.hjson`.
:information_source: ENiGMA½'s `ftn_bso` module is **not a mailer** and makes **no attempts** to perform packet transport! An external utility such as Binkd is required for this!
See [FidoNet-Style Networks](ftn.md) for more information.
#### Networks
The `networks` block a per-network configuration where each entry's key may be referenced elsewhere in `config.hjson`.
Example: the following example declares two networks: `araknet` and `fsxnet`:
```hjson
{
messageNetworks: {
ftn: {
networks: {
// it is recommended to use lowercase network tags
fsxnet: {
defaultZone: 21
localAddress: "21:1/121"
}
araknet: {
defaultZone: 10
localAddress: "10:101/9"
}
}
}
}
}
```
#### Areas
The `areas` section describes a mapping of local **area tags** configured in your `messageConferences` (see [Configuring a Message Area](configuring-a-message-area.md)) to a message network (described above), a FTN specific area tag, and remote uplink address(s). This section can be thought of similar to the *AREAS.BBS* file used by other BBS packages.
When ENiGMA½ imports messages, they will be placed in the local area that matches key under `areas` while exported messages will be sent to the relevant `network`.
| Config Item | Required | Description |
|-------------|----------|----------------------------------------------------------|
| `network` | :+1: | Associated network from the `networks` section above |
| `tag` | :+1: | FTN area tag (ie: `FSX_GEN`) |
| `uplinks` | :+1: | An array of FTN address uplink(s) for this network |
Example:
```hjson
{
messageNetworks: {
ftn: {
areas: {
// it is recommended to use lowercase area tags
fsx_general: // *local* tag found within messageConferences
network: fsxnet // that we are mapping to this network
tag: FSX_GEN // ...and this remote FTN-specific tag
uplinks: [ "21:1/100" ] // a single string also allowed here
}
}
}
}
}
```
:information_source: You can import `AREAS.BBS` or FTN style `.NA` files using [oputil](/docs/admin/oputil.md)!
### A More Complete Example
Below is a more complete *example* illustrating some of the concepts above:
```hjson
{
messageNetworks: {
ftn: {
networks: {
fsxnet: {
defaultZone: 21
localAddress: "21:1/121"
}
}
areas: {
fsx_general: {
network: fsxnet
// ie as found in your info packs .NA file
tag: FSX_GEN
uplinks: [ "21:1/100" ]
}
}
}
}
}
```
:information_source: Remember for a complete FTN experience, you'll probably also want to configure [FTN/BSO scanner/tosser](bso-import-export.md) settings.
### FTN/BSO Scanner Tosser
Please see the [FTN/BSO Scanner/Tosser](bso-import-export.md) documentation for information on this area.
#### QWK
See [QWK and QWK-Net Style Networks](qwk.md) for more information.

52
docs/messageareas/qwk.md Normal file
View File

@ -0,0 +1,52 @@
---
layout: page
title: QWK Support
---
## QWK and QWK-Net Style Networks
As like all other such as FidoNet-Style (FTN) networks, ENiGMA½ considers QWK external to the system but can import and export the format.
### Supported Standards
QWK must be considered a semi-standard as there are many implementations. What follows is a short & incomplete list of such standards ENiGMA½ supports:
* The basic [QWK packet format](http://fileformats.archiveteam.org/wiki/QWK).
* [QWKE extensions](https://github.com/wwivbbs/wwiv/blob/master/specs/qwk/qwke.txt).
* [Synchronet BBS style extensions](http://wiki.synchro.net/ref:qwk) such as `HEADERS.DAT`, `@` kludges, and UTF-8 handling.
### Configuration
QWK configuration occurs in the `messageNetworks.qwk` config block of `config.hjson`. As QWK wants to deal with conference numbers and ENiGMA½ uses area tags (conferences and conference tags are only used for logical grouping), a mapping can be made.
:information_source: During a regular, non QWK-Net exports, conference numbers can be auto-generated. Note that for QWK-Net style networks, you will need to create mappings however.
:TODO: information on QWK-Net type setup here
Example:
```hjson
{
messageNetworks: {
qwk: {
areas: {
general: { // local ENiGMA½ area tag
conference: 1 // conference number to map to
}
}
}
}
}
```
### oputil
The `oputil.js` utility can export packet files, dump the messages of a packet to stdout, etc.
TODO: Examples, etc.
TODO: Link to oputil, update --help there.
### Offline Readers
A few of the offline readers that have been tested with QWK packet files produced by ENiGMA:
| Software | Status | Notes |
|----------|--------|-------|
| MultiMail/Win v0.52 | Supported | Private mail seems to break even with bundles from other systems |
| SkyReader/W32 v1.00 | Supported | Works well. No QWKE or HEADERS.DAT support. Gets confused with low conference numbers. |
There are also [many other readers](https://www.softwolves.pp.se/old/2000/faq/bwprod) for various systems.