-
- Downloads
Enhancement at the request of Nightfox:
Optionally, external modules may be executed in place of "built-in" operations for: - reading mail (email or netmail) - scanning posts (searching/scanning/reading a single sub-board) - scanning sub-boards (all, one, or a group) Each of these may be configured (in SCFG->System->Loadable Modules) with command-line options for a total length of up to 63 characters. Note to module programmers: each module here will be passed additional command-line arguments to indicate how or why the user operation was invoked. For the Reading Mail module, the 'which' value (in decimal) and the user-number is passed (in decimal). Usually the user-number will be the current user logged in, but not always (e.g. if the user is a sysop and reading other user's mail). The 'which' values (defined in load/sbbsdefs.js) of MAIL_YOUR, MAIL_SENT, and MAIL_ALL must be handled (MAIL_ANY won't be used). For the Scan Posts module, the sub-board number and scan mode (both in decimal) and the 'find' string (text being searched for) are passed as arguments (in that order). The scan mode values (defined in sbbsdefs.js) are the same as those supported by bbs.scan_posts(). All of the values should be supported and they can be combined (e.g. SCAN_CONST|SCAN_NEW and SCAN_NEW|SCAN_TOYOU). The 'find' string is only used if the SCAN_FIND mode bit is set. It is the responsibilty of the module (if configured) to enforce sub-board read access restrictions. For the Scan Subs module, the first argument is 1 if "all subs" are being scanned, 0 otherwise (normally the user is prompted for the breadth of the scan in this case, but that's up to the module author), and the scan 'mode' is passed in decimal, in that order. If the SCAN_FIND mode flag is passed in, this module should prompt the user for the text string to search for. If this module is not configured, the Scan Posts module will be executed for each sub-board scanned. Recursion protection was added, so it is actually possible for the Read Mail module, for example, to call bbs.read_mail() and it'll work, but why would you? If any of these user operations are initiated during logon, at the request of Baja or JavaScript module, or whatever, and if the module is actually configured (and not already executing to handle the operation), the module will be executed in-place-of the built-in functionality. Feedback welcome,
Showing
- src/sbbs3/main.cpp 4 additions, 1 deletionsrc/sbbs3/main.cpp
- src/sbbs3/readmail.cpp 11 additions, 1 deletionsrc/sbbs3/readmail.cpp
- src/sbbs3/readmsgs.cpp 10 additions, 1 deletionsrc/sbbs3/readmsgs.cpp
- src/sbbs3/sbbs.h 4 additions, 1 deletionsrc/sbbs3/sbbs.h
- src/sbbs3/scansubs.cpp 21 additions, 1 deletionsrc/sbbs3/scansubs.cpp
- src/sbbs3/scfg/scfgsys.c 23 additions, 3 deletionssrc/sbbs3/scfg/scfgsys.c
- src/sbbs3/scfgdefs.h 4 additions, 1 deletionsrc/sbbs3/scfgdefs.h
- src/sbbs3/scfglib1.c 5 additions, 2 deletionssrc/sbbs3/scfglib1.c
- src/sbbs3/scfgsave.c 5 additions, 2 deletionssrc/sbbs3/scfgsave.c
Loading
Please register or sign in to comment