Add initial QWK docs, update FTN, etc.
This commit is contained in:
parent
7fb10418f0
commit
67ac86ac05
|
@ -187,6 +187,8 @@ qwk-export arguments:
|
||||||
--user USER User in which to export for. Defaults to the SysOp.
|
--user USER User in which to export for. Defaults to the SysOp.
|
||||||
--after TIMESTAMP Export only messages with a timestamp later than
|
--after TIMESTAMP Export only messages with a timestamp later than
|
||||||
TIMESTAMP.
|
TIMESTAMP.
|
||||||
|
--no-qwke Disable QWKE extensions.
|
||||||
|
--no-synchronet Disable Synchronet style extensions.
|
||||||
`
|
`
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -521,6 +521,13 @@ function exportQWKPacket() {
|
||||||
|
|
||||||
const userName = argv.user || '-';
|
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;
|
let totalExported = 0;
|
||||||
async.waterfall(
|
async.waterfall(
|
||||||
[
|
[
|
||||||
|
@ -578,10 +585,10 @@ function exportQWKPacket() {
|
||||||
},
|
},
|
||||||
(user, Message, messageIds, callback) => {
|
(user, Message, messageIds, callback) => {
|
||||||
const { QWKPacketWriter } = require('../qwk_mail_packet');
|
const { QWKPacketWriter } = require('../qwk_mail_packet');
|
||||||
const writer = new QWKPacketWriter({
|
const writer = new QWKPacketWriter(Object.assign(writerOptions, {
|
||||||
bbsID,
|
bbsID,
|
||||||
user,
|
user,
|
||||||
});
|
}));
|
||||||
|
|
||||||
writer.on('ready', () => {
|
writer.on('ready', () => {
|
||||||
async.eachSeries(messageIds, (messageId, nextMessageId) => {
|
async.eachSeries(messageIds, (messageId, nextMessageId) => {
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
- [Message networks]({{ site.baseurl }}{% link messageareas/message-networks.md %})
|
- [Message networks]({{ site.baseurl }}{% link messageareas/message-networks.md %})
|
||||||
- [BSO Import & Export]({{ site.baseurl }}{% link messageareas/bso-import-export.md %})
|
- [BSO Import & Export]({{ site.baseurl }}{% link messageareas/bso-import-export.md %})
|
||||||
- [Netmail]({{ site.baseurl }}{% link messageareas/netmail.md %})
|
- [Netmail]({{ site.baseurl }}{% link messageareas/netmail.md %})
|
||||||
|
- [QWK]({{ site.baseurl }}{% link messageareas/qwk.md %})
|
||||||
|
- [FTN]({{ site.baseurl }}{% link messageareas/ftn.md %})
|
||||||
|
|
||||||
- Art
|
- Art
|
||||||
- [General]({{ site.baseurl }}{% link art/general.md %})
|
- [General]({{ site.baseurl }}{% link art/general.md %})
|
||||||
|
|
|
@ -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.
|
|
@ -3,103 +3,23 @@ layout: page
|
||||||
title: Message Networks
|
title: Message Networks
|
||||||
---
|
---
|
||||||
## 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.
|
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`.
|
||||||
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.
|
|
||||||
|
|
||||||
### 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`.
|
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
|
#### QWK
|
||||||
The `networks` block a per-network configuration where each entry's key may be referenced elsewhere in `config.hjson`.
|
See [QWK and QWK-Net Style Networks](qwk.md) for more information.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
|
@ -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.
|
Loading…
Reference in New Issue