====== Node List ======

This Synchronet Node List module ([[https://gitlab.synchro.net/main/sbbs/-/blob/master/exec/nodelist.js|nodelist.js]]) can list the [[server:Terminal]] Server nodes / active-users as well as the active-users of the [[server:Web]] Server, when running a [[:howto:ecweb|compatible web interface]]. This module can be used to replace the hard-coded node listing functionality of the BBS's terminal server (''sbbs_t::nodelist()'' and ''sbbs_t::whos_online()'' from [[https://gitlab.synchro.net/main/sbbs/-/blob/master/src/sbbs3/getnode.cpp|getnode.cpp]] invoked via the Ctrl-U global hot-key handler or via menu options, e.g. ''/L'') and the native [[util:node]] utility.

===== Invocation =====

The Node List module may be run from the [[server:Terminal]] Server or from system/OS command prompt via [[util:JSexec]]. To invoke the module using JSexec, run:
  jsexec nodelist.js [[option] [...]]
  
==== Options ====

The available command-line options (or ''load()'' arguments) are:  

^ Option     ^ Description ^ 
| -active    | Include active users/nodes only |
| -noself    | Exclude current/own node from list/output |
| -noweb     | Exclude web users from list/output |
| -clear     | Clear the screen (if possible) before list |
| -home      | Home the cursor (if possible) before list |
| -loop [n]  | Loop the list, delaying n seconds (default: 2.0 seconds) |


===== Install =====
 
The ''nodelist'' module is now the default value for SCFG->System->Loadable Modules->List Nodes and Who's Online, so it needs no manual installation.
===== Customize =====  

The Node List module supports the following configuration options in the ''[nodelist]'' section of the ''[[dir:ctrl]]/[[config:modopts.ini]]'' file:

^ Option         ^ Default                       ^  Description ^
| include_age    | false                         | Include user's age (in years)         |
| include_gender | false                         | Include user's gender/sex             |
| format         | "\x01n\x01h%3d  \x01n\x01g%s" | printf-style format of each node line |
| username_prefix| "\x01h"                       | Prefix (usually [[custom:Ctrl-A codes]]) to insert before user's name/alias |
| age_prefix     | ""                            | Prefix (usually [[custom:Ctrl-A codes]]) to insert before user's age |
| gender_prefix  | ""                            | Prefix (usually [[custom:Ctrl-A codes]]) to insert before user's gender |
| gender_separator | " "                         | Separator to insert before user's gender |
| status_prefix  | "\x01n\x01g"                  | Prefix (usually Ctrl-A codes) to insert before node status |
| errors_prefix  | "\x01h\x01r"                  | Prefix (usually Ctrl-A codes) to insert before error counter |
| connection_prefix |""                          | Prefix (usually Ctrl-A codes) to insert before current connection method (protocol) |
| include_web_users  | true                      | Include web users |
| web_inactivity | ''inactivity'' value from the ''[web]'' section | Seconds of inactivity before considering web users to be disconnected |
| web_browsing   | "browsing"                    | word used to describe web activity |

**Note:**\\
The ''[nodelist]'' options from the ''modopts.ini'' file are cached in memory in the Terminal Server (by ''[[dir:load]]/nodelist_options.js'') for performance reasons and thus any changes you make to this file may require a logout/login to be observed by a logged-in user.

===== See Also =====
  * [[:module:|Modules]]
  * [[:module:privatemsg|Private Message module]]
  * [[:util:JSexec]] utility
  * [[:util:node]] utility

{{tag>nodelist node chat ecweb}}
