NODEINFO
Nodelist Mailer - an FTN nodelist browser + netmail door for C-Net/5
===============================================================================
DESCRIPTION
===============================================================================
NodeInfo (on-screen title: "Nodelist Mailer") is an ARexx door for C-Net/5
Professional BBS that lets callers browse whatever FidoNet Technology
Network (FTN) nodelists your board carries, and jump straight into netmail
addressed to any node they find - without you hand-editing the door every
time you add, drop, or rename a network.
FEATURES
- Automatically discovers every network your board carries by reading
the Zone,/Host,/Region, header lines straight out of your Nodelist:
directory at run time. Nothing about which networks you carry, or
their hub addresses, is hardcoded - point this at any C-Net/5 board's
Nodelist: directory and it just works, unmodified.
- Main menu: list every zone/network HQ found, browse any one network
by area instead of dumping the whole nodelist at once, or list which
nodelist files are currently compiled in (with each file's own
release date pulled straight from its header).
- Per-network submenu: zone coordinator info, a full system listing for
just that one network, and a free-text node search.
- Search for a Node looks a node up directly and, if it has a sysop
name on file, offers to send it netmail on the spot - answering Yes
drops the caller straight into C-Net's own Mail composer, already
addressed as "Handle@zone:net/node" (the same mechanism/format
PFiles:Netmail/apro.rx uses), so they just write the message.
- [?] Quick Help on every menu shows install-guide-quality help without
leaving the door, and doubles as the text shown by the BBS's own "?"
help lookup at the main prompt - one file, no duplication.
- Every selection is a single keypress - no Enter needed - including
List Networks' zone picker, which uses a 1-9-then-A-Z hotkey scheme
(Q reserved for Back/Quit) so it still works with more than 9
networks.
- Self-contained and portable: every file this door touches (its own
banner artwork, its help text) is referenced relative to wherever you
install the NodeInfo/ folder, not hardcoded to this BBS's paths. Drop
the whole folder anywhere and update one bbsmenu line - see
INSTALLATION below.
- Long listings page 20 lines at a time with a Continue/Quit prompt, so
a big network (hundreds of nodes) doesn't just scroll off the top of
the screen.
- Nearly fully self-contained: everything except Zone Coordinator Info
(H) reads your Nodelist: files directly rather than shelling out to
third-party nodelist utilities (several of which have their own
long-standing display bugs this works around by not relying on
them). H uses Mail:bin/getnode for the hub's connection flags - that
ships with every C-Net/5 board, so it's not an extra dependency.
- The actual nodelist scanning (discovering networks, listing systems,
searching for a node) runs through nihelper, a small compiled helper
included right alongside nodeinfo.rexx, instead of ARexx re-parsing
every line itself - noticeably faster on a big nodelist (FidoNet's
alone is well over 100KB). ARexx still drives every screen, keypress,
color, and the netmail hand-off - nihelper only does the file
scanning and hands results back through a temp file, so none of the
door's actual behavior changes, it's just quicker.
INSTALLATION
===============================================================================
1. Copy the entire NodeInfo/ folder (nodeinfo.rexx, nihelper, sys.banner,
nodeinfo.help) to PFiles: on your board - e.g. PFiles:NodeInfo/. It can
live anywhere ARexx can reach; PFiles: just matches where this door
ships from. nihelper must keep executable permission after copying
(it's a compiled program, not a script) - if your archiver/transfer
method strips that, run "Protect PFiles:NodeInfo/nihelper +e" (or set
it however your Amiga OS/archiver expects) before running the door.
2. Add a line to your bbsmenu (wherever you keep your other PFile/door
entries) pointing at it:
NODEinfo `2- | #0 PFiles:NodeInfo/nodeinfo.rexx}
NODEinfo is the command callers type (NODE is the required part, INFO
optional); `2- restricts it to access level 2 and up - adjust or drop
that to match your own board's access scheme. Change the path if you
installed the folder somewhere other than PFiles:NodeInfo/.
3. (Optional, recommended) Copy nodeinfo.help to SysText:help/nodeinfo
(drop the .help extension) so the BBS's own "?" help lookup at the
main prompt also shows it, in addition to the door's in-door [?] Quick
Help - which works either way, since it reads its own bundled copy.
4. That's it - no configuration file, no editing required. The door reads
your actual Nodelist: directory fresh every time it's used, and
discovers whatever networks you carry on its own.
FILES INCLUDED
===============================================================================
nodeinfo.rexx Main ARexx door
nihelper Compiled m68k-AmigaOS helper - does the actual
Nodelist: file scanning, called by nodeinfo.rexx
sys.banner Title-screen artwork shown on the main menu
nodeinfo.help Help text - shown in-door via [?], and optionally
installable to SysText:help/nodeinfo too (see
INSTALLATION step 3)
readme.txt This file
File_ID.DIZ Short archive-listing blurb
REQUIREMENTS
===============================================================================
- C-Net/5 Professional BBS (tested against a recent build; should work
on any C-Net/5 release with a Nodelist: assign and standard FTN-
format nodelist files).
- ARexx, with rexxsupport.library available (standard on any system
already running C-Net/5's ARexx door interface).
- A populated Nodelist: assign containing standard FTN nodelist files
(Zone,/Region,/Host, header format). Works with any mix of networks;
nothing here assumes FidoNet specifically.
- Mail:bin/getnode, for the Zone Coordinator Info (H) option only -
ships standard with C-Net/5, so this shouldn't need any extra
install step on a real C-Net/5 board.
- AmigaDOS's Shell/command support (standard on any Amiga - this is
what runs nihelper and captures its output). No fifo-handler or
other special DOS-door setup needed; nihelper is invoked as a plain
background helper, not as a door in its own right.
- nihelper is precompiled and included - you don't need a compiler to
use this door. If you want to rebuild it from source yourself, it
was built with bebbo's m68k-amigaos-gcc (-mcrt=nix13), the same
toolchain/convention as this SysOp's other Aminet releases
(AmiBinkD, RoFTIC).
VERSION HISTORY
===============================================================================
2.18 - Fixed a runtime error (ARexx Error 18/16) in RUNHELPER's temp-
filename generation - random(1000,9999), added unnecessarily
for uniqueness, was rejected by this ARexx. Dropped it in
favor of time('s') alone, already used the same way
everywhere else in this door.
2.17 - Fixed Options 1/2 still coming up empty after 2.16 - the real
problem was ADDRESS COMMAND itself (most likely not permitted
from inside a CNet ARexx door), not redirection or argument
handling. nihelper is now run via the same {#4 f} MCI
directive Mail:bin/getnode already used successfully.
2.16 - Fixed List Network HQ's / List Networks coming up completely
empty: nihelper now takes its output path as a real argument
and writes to it directly, instead of relying on '>' shell
redirection through ADDRESS COMMAND to capture its output.
2.15 - The nodelist scanning itself (network discovery, system
listings, node search) now runs through nihelper, a small
compiled C helper included alongside the door, instead of
ARexx re-parsing every line - noticeably faster on a large
nodelist. Every screen, keypress, color, and the netmail
hand-off still runs entirely in ARexx, unchanged - nihelper
only replaces the file-scanning loop. Also tightened the
search-input sanitizer to an allowlist (digits/colon/slash
only), since search input now reaches an actual shell command
line rather than just an MCI directive argument.
2.14 - Fixed a zone coordinator address bug (Region, line's number
picked up instead of the real Host, line's number when a zone
has both). Every menu selection is now a single keypress, no
Enter needed. On-screen title changed to "Nodelist Mailer".
2.13 - Static title-screen banner. Added [?] Quick Help, in-door and
via the BBS's own "?" lookup, from the same file.
2.12 - "Search for a Node" became self-contained (no more shelling
out to Mail:bin/getnode for it), and can now hand the caller
straight into netmail addressed to the node it finds.
2.00 - Full rewrite: dynamic network discovery (no hardcoded network
list or hub addresses), boxed/colored menu screens, paginated
listings, self-contained node search and coordinator lookup.
1.00 - Original static 5-option version.
DISTRIBUTION
===============================================================================
Freeware. Use it, modify it, share it - a credit is appreciated but not
required. No warranty of any kind; back up your PFiles: directory before
installing anything on a live board, as always.
CONTACT
===============================================================================
Gary McCulloch (SpitfireTN Entertainment)
https://www.rofbbs.com - telnet://call.rofbbs.com:6800 - ssh call@call.rofbbs.com
|