fido2rss

Makes RSS feeds out of Fidonet echomail areas.

Fido2RSS is a Node.js module and a CLI application; both make RSS feeds out of Fidonet echomail areas.

  • Fido2RSS is written in JavaScript and requires Node.js to run. (Node.js version 0.10.x or 0.12.x is recommended. The latest stable io.js is fine too.)

  • Fido2RSS supports only a couple of Fidonet message base types: JAM (Joaquim-Andrew-Mats) and Squish.

  • Latest packaged version: npm install fido2rss

  • Latest githubbed version: npm install https://github.com/Mithgol/fido2rss/tarball/master

The module becomes installed locally and appears in node_modules/fido2rss. Then use require('fido2rss') to access the module.

You may visit https://github.com/Mithgol/fido2rss#readme occasionally to read the latest README because the package's version is not planned to grow after changes when they happen in README only. (And npm publish --force is forbidden nowadays.)

  • Latest packaged version: npm install -g fido2rss

  • Latest githubbed version: npm install -g https://github.com/Mithgol/fido2rss/tarball/master

The application becomes installed globally and appears in the PATH. Then use fido2rss command to run the application.

Instead of the above, download the ZIP-packed source code of Fido2RSS and unpack it to some directory. Then run npm install --production in that directory.

You may now move that directory (for example, on a flash drive) across systems as long as they have the required version of Node.js installed.

Unlike the above (npm -g), the application does not appear in the PATH, and thus you'll have to run it directly from the application's directory. You'll also have to use node fido2rss [options] instead of fido2rss [options].

You may run the installed application by typing in the command line:

fido2rss [options]

where [options] is a space-separated list of the following options and their values:

(optional)

The full path (with the filename) that is used to generate a lock file.

You may use it to prevent both Fido2RSS and HPT (or any other echomail processor that supports lock files) from running simultaneously and trying to process the same echomail area.

(required)

The full path (with the filename, but without extensions) of the message base.

(optional)

Message base type. Use --type Squish for Squish message bases. The default type is JAM.

(required)

The areatag (echotag) of the echomail area.

(optional)

How many latest messages are taken from the echomail area and published to the RSS feed.

By default, 23.

(required)

The full path (with the filename) that is used to generate the RSS output file.

You may require() the installed module and get a function that asynchronously converts Fidonet messages to RSS output.

That function accepts an object of options and a callback that receives an error (or null) and RSS output (a string).

var Fido2RSS = require('fido2rss');
Fido2RSS(options, function(erroutputRSS){
   if( err ){
      // an error happened 
   } else {
      // conversion is successful, you may use `outputRSS` now 
   }
});

The following properties in the object of options are processed:

  • options.area — the areatag (echotag) of the echomail area. (Required.)

  • options.base — the full path (with the filename, but without extensions) of the message base. (Required.)

  • options.msg — how many latest messages are taken from the echomail area and published to the RSS feed. (By default, 23.)

  • options.type — the message base's type. By default, 'JAM'; can also be 'Squish' (not case-sensitive). An unknown type is also treated as 'JAM'.

  • options.areaPrefixURL — the prefix to be added before area://… URLs that appear in RSS output. (For example, if .areaPrefixURL is 'https://example.org/fidonet?', then the URL 'https://example.org/fidonet?area://Test/' will appear instead of original 'area://Test/'.) Some WebBBS support is necessary on the server side (of the given server) for such URLs to be working.

    • This property also affects URLs of images and other files decoded from UUE codes. When the property is defined, these files are given with prefixed area://… URLs instead of RFC2397-compliant data: URLs.
    • By default, .areaPrefixURL is not defined. It means that prefixing does not happen and files use data: URLs.
    • This property is useful when RSS output is known to be consumed by RSS readers or web sites that are not ready to encounter FGHI URLs or impose length limits on individual RSS items or the whole RSS feed (data: URLs tend to be rather lengthy).

It is necessary to install JSHint for testing.

  • You may install JSHint globally (npm install jshint -g) or locally (npm install jshint in the directory of Fido2RSS).

After that you may run npm test (in the directory of Fido2RSS). Only the JS code errors are caught.

Note: if you test a generated local RSS file by dragging and dropping it to Firefox, the file is not recognized as RSS. That's a known Firefox bug (#420004) discovered in 2008.

MIT License, see the LICENSE file.