Commit Graph

1394 Commits

Author SHA1 Message Date
Bryan Ashby 7776391184 Door utility and door tracking
* Require >= 45s of time in a door before it counts as "run"
2019-01-18 22:09:10 -07:00
Bryan Ashby 4e1997302e Fairly functional 2019-01-17 21:27:37 -07:00
Bryan Ashby 2a3271ef4e Fix some events 2019-01-17 21:27:25 -07:00
Bryan Ashby 39e7fe5d69 + WIP TopX module 2019-01-17 20:18:23 -07:00
Bryan Ashby dc70521057 + New, more detailed user event log entries that can be summed/etc.
* Last callers indicators now use new user event log entries
2019-01-17 20:18:02 -07:00
Bryan Ashby 7c6e3e3ad4 Cleanup, notes, etc. 2019-01-17 20:14:59 -07:00
Bryan Ashby 483e7f4ee9 Add global boolean to node sent event 2019-01-17 20:14:33 -07:00
Bryan Ashby 680898b56b Add minutes used to logoff event 2019-01-17 20:13:49 -07:00
Bryan Ashby 6408e40604 Fix minor typo 2019-01-13 19:10:54 -07:00
Bryan Ashby 403ee891d5 Change column name, drop a useless one 2019-01-13 18:19:00 -07:00
Bryan Ashby 90137819dd Merge branch '0.0.9-alpha' of ssh://numinibsd/git/base/enigma-bbs into achivements-0.0.9-alpha 2019-01-12 23:00:27 -07:00
Bryan Ashby d5bd2d5adf Experimental UTF-8 -> CP437 (aka nix -> ansi) override to work around terms such as NR that report 'xterm' but want CP437 2019-01-12 10:31:03 -07:00
Bryan Ashby 3f2e836a83 Minor fixes 2019-01-10 21:41:32 -07:00
Bryan Ashby 2788c37492 + ACS: AC for achievement count check
+ ACS: AP for achievement point check
+ User minutes used on the system are now tracked
+ MCI: TO for total time spent online system (friendly format)
* Fix up a couple ACS bugs with |value|
* Fix formatting of achievement text
+ Add more achievements
* Fix achievement duration formatting
2019-01-10 20:34:52 -07:00
Bryan Ashby 091a9ae2c7 Fix some bugs, clean up, etc. in achievements 2019-01-09 20:07:59 -07:00
Bryan Ashby b96fa154c0 Spelling 2019-01-09 20:07:27 -07:00
Bryan Ashby 83c57926d3 Never interrupt during upload 2019-01-09 20:06:55 -07:00
Bryan Ashby c9af0edef8 resetScreen() vs clearScreen() 2019-01-09 20:06:30 -07:00
Bryan Ashby 34c9178099 Achievement & Event improvements
* User stat set vs user stat increment system events
* Proper addMultipleEventListener() and removeMultipleEventListener() Events APIs
* userStatSet vs userStatInc user stat achievement types. userStatInc for example can be used for door minutes used
2019-01-06 21:56:12 -07:00
Bryan Ashby 925ca134c6 Door stats for CombatNet module 2019-01-06 18:01:03 -07:00
Bryan Ashby 99a95e7648 Door stats to Exodus module 2019-01-06 17:50:22 -07:00
Bryan Ashby 8315b62199 Door stats to BBSLink module 2019-01-06 17:42:07 -07:00
Bryan Ashby f653d83c14 Implement retroactive achievements (for userStat types so far) 2019-01-06 10:41:04 -07:00
Bryan Ashby 2b802cb534 Better theming for achievements 2019-01-05 22:51:16 -07:00
Bryan Ashby 22b7fdd65c Add door stats & new mini format styles
+ Door runs stat
+ Door run minutes stat
+ Door runs MCI
+ Door run friendly duration MCI
+ durationHours/Minutes/Seconds mini format styles
2019-01-05 21:17:53 -07:00
Bryan Ashby 9d39e99c5a Update copyright 2019-01-05 21:17:18 -07:00
Bryan Ashby 3d07f763d1 Achievement improvement & more achievements 2019-01-05 19:04:19 -07:00
Bryan Ashby f56a72e0c3 Start of theming of achievements
+ default text/SGR styles can now be set for quick customization of colors
2019-01-05 16:55:37 -07:00
Bryan Ashby 2bd51c0725 Achievements are now in 'achievements.hjson'
+ Config.general.achievementFile
* Implement (re)caching (aka hot-reload)
* Update values a bit
2019-01-05 12:18:44 -07:00
Bryan Ashby c332b0f3ec WIP on user achievements
+ Add MCI codes for points/count
+ Add docs for MCI codes
+ Record in stats, stat log, etc.
* Do not trigger more than once
* Code cleanup & organization, add classes, etc.
* Tweaks to DB table
2019-01-05 10:49:19 -07:00
Bryan Ashby 6410637359 Don't allow real time interrupt until ready 2019-01-03 22:03:00 -07:00
Bryan Ashby 10517b1060 Progress on achivements
* Fetch art if available
* Queue local and/or global interrupts
* Apply text formatting
* Bug exists with interruptions in certain scenarios that needs worked out
2019-01-03 21:03:08 -07:00
Bryan Ashby bd03d7a79b Fix comment 2019-01-03 21:02:57 -07:00
Bryan Ashby ea055ab58b Handle pause for text-only interruptions also 2019-01-03 21:02:42 -07:00
Bryan Ashby 9f728a2e94 Fix longstanding bug with node IDs 2019-01-03 21:02:21 -07:00
Bryan Ashby a34dab6a73 WIP on user achievements
* Hook up events for testing
* Start to plug in experimental interrupt
2019-01-02 22:13:42 -07:00
Bryan Ashby c5a72c7356 TODO notes 2019-01-02 20:08:00 -07:00
Bryan Ashby eaace9a81d TODO notes 2019-01-02 20:07:46 -07:00
Bryan Ashby b23cdd20bf Listen to 'env' events 2019-01-02 19:52:15 -07:00
Bryan Ashby 4fb7c4bf53 Some minor cleanup 2018-12-31 11:33:14 -07:00
Bryan Ashby 0230d9958c Better screen size detection when NAWS/etc. fails:
Ask to move cursor to 999,999. We expect that we'll really get something like 80x25 generally. *Then* issue
special DSR that should give us screen size. We should get a good "bottom right" aka screen size either way.
2018-12-31 11:30:40 -07:00
Bryan Ashby 78484a2352 Compare SAUCE for --update propertly 2018-12-29 13:28:08 -07:00
Bryan Ashby 6b02ddbdae Fix FILE_ID.DIZ (and other) display issues when ANSI is stored with specific term width in SAUCE
+ Preserve SAUCE records of desc/long_desc during import (in meta)
* Use SAUCE term width for ANSI Prep when displaying desc
2018-12-29 13:15:58 -07:00
Bryan Ashby 046550842b ACS changes in prep for checking from ie content servers such as NNTP
* ACS now takes subject { client, user }
* ACS checks now consider client/user optional & checks fail (return false) if an object is not available
2018-12-28 10:39:41 -07:00
Bryan Ashby 8d46a305c5 Add IP address to failed login attempts 2018-12-27 14:16:59 -07:00
Bryan Ashby 3864d957c9 * Servers now use async listen() 2018-12-27 02:46:16 -07:00
Bryan Ashby 9d1815682d * ServerModule's createServer() is now async
* Re-write of NNTP Message-ID <> internal message UUIDs
2018-12-27 02:19:26 -07:00
Bryan Ashby ee93035bb8 * Disconnect clients that attempt to login with banned usernames for Telnet as well
* Slow disconnects to thwart brute force attacks - these names won't exist anyway,
  but we want the attacking client to not DoS us
2018-12-25 00:18:04 -07:00
Bryan Ashby 06a1925288 Check bad usernames @ login 2018-12-24 15:32:38 -07:00
Bryan Ashby 73e8b0454e Wrap ctx.reject() and catch throws 2018-12-24 15:14:37 -07:00
Bryan Ashby c6e176f5bd Add oputil fb desc 2018-12-21 14:39:57 -07:00
Bryan Ashby f4088303ca cleanControlCodes -> stripAnsiControlCodes 2018-12-17 22:08:59 -07:00
Bryan Ashby eeaeef9a8c Yet another FILES.BBS type 2018-12-17 21:39:25 -07:00
Bryan Ashby 1f5ec39778 Strip pipe codes! 2018-12-17 21:39:10 -07:00
Bryan Ashby 03662dc056 Fix major durp in code with CNET codes 2018-12-17 21:38:09 -07:00
Bryan Ashby 098e3c2fba More FILES.BBS support 2018-12-17 17:23:02 -07:00
Bryan Ashby 84ca97e936 FILES.BBS handling improvements - WIP 2018-12-17 15:56:09 -07:00
Bryan Ashby 996fcb389e Minor help update 2018-12-17 12:10:55 -07:00
Bryan Ashby 832e04cdf0 + Initial FILES.BBS support during file scan: A few formats supported so far, more to come...
* Detect DESCRIPT.ION, FILES.BBS, etc. during scans
2018-12-17 12:08:06 -07:00
Bryan Ashby 8356f00ba6 Fix bug when user has been nuked 2018-12-17 11:56:07 -07:00
Bryan Ashby b1eea4f4b7 Some logging updates 2018-12-17 11:20:14 -07:00
Bryan Ashby 12a1809a88 lol fail 2018-12-16 00:40:14 -07:00
Bryan Ashby 422a925daa + oputil.js user info
* Fix up some help messaging
* Don't allow del of +op
2018-12-16 00:26:28 -07:00
Bryan Ashby 6d45d74a47 Little better NNTP config 2018-12-15 23:52:59 -07:00
Bryan Ashby 3eaf4dd0d8 + oputil.js user rm USERNAME
* Fix some of my horrid spelling...
2018-12-15 23:42:19 -07:00
Bryan Ashby cf6e3d3ba8 Better logging 2018-12-15 02:40:36 -07:00
Bryan Ashby b89096fd99 publicPort typo 2018-12-15 02:39:57 -07:00
Bryan Ashby 4b2771012b Show desc if set 2018-12-15 02:06:15 -07:00
Bryan Ashby dba2fc18f6 Strip MCI/Pipe codes 2018-12-15 01:55:38 -07:00
Bryan Ashby a3ba57b0b8 Fix schedule issue 2018-12-14 23:21:33 -07:00
Bryan Ashby b903b2ee82 Better logging 2018-12-14 23:08:53 -07:00
Bryan Ashby 874aee5baa Change listen addr 2018-12-14 23:03:10 -07:00
Bryan Ashby 772022f0d0 + NNTP Content Server
* Read-only to public conf/areas only for now
* Missing some protocol support
* Could use better encoding practices and ANSI prep
2018-12-14 22:21:57 -07:00
Bryan Ashby cde329b439 Spelling 2018-12-10 21:54:59 -07:00
Bryan Ashby a036f6c6bf Minor code tidy 2018-12-09 02:35:34 -07:00
Bryan Ashby a70d865d74 Code tidy 2018-12-09 02:33:48 -07:00
Bryan Ashby 844286ea1c Use constants 2018-12-09 02:32:41 -07:00
Bryan Ashby 704c242aa4 Fix bug in newScanMessageArea() 2018-12-09 02:32:20 -07:00
Bryan Ashby 167916e8dd Fix bug in findByFullPath() 2018-12-09 02:20:50 -07:00
Bryan Ashby 8652b35b46 Code cleanup & resolve some minor TODO's in dropfile gen 2018-12-09 01:01:55 -07:00
Bryan Ashby a8604ece54 Ensure 'userName' has _something_ if sanatized all the way out 2018-12-09 00:17:03 -07:00
Bryan Ashby 2474e82829 Change default dropfile path to just ./enigma-bbs/drop/ so we can have a shorter name for Win16 binaries 2018-12-08 23:41:42 -07:00
Bryan Ashby ecb0cd8941 Minor door updates 2018-12-08 00:43:20 -07:00
Bryan Ashby 60369ea378 * Note on FILEBONE.NA support
* Notes on importing in file area docs
2018-12-04 20:42:56 -07:00
Bryan Ashby 9c835af000 Initial support for FILEGATE.ZXX / RAID style import of file areas 2018-12-03 23:51:43 -07:00
Bryan Ashby 0c23339a2d Code cleanup: Use EnigError's vs standard Error. WIP... 2018-12-02 19:33:07 -07:00
Bryan Ashby 5dea13e652 + validateConfigFields() for 'config' block validation 2018-12-02 19:30:50 -07:00
Bryan Ashby 36d55a409e Add send node msg event 2018-12-01 17:00:07 -07:00
Bryan Ashby eec06e7004 Fix oops! 2018-12-01 16:59:47 -07:00
Bryan Ashby fe44f2c4d6 User interrupts & node module ready to rock. ...maybe with bugs? 2018-11-30 23:20:44 -07:00
Bryan Ashby d9238ee6a5 Merge branch '0.0.9-alpha' of github.com:NuSkooler/enigma-bbs into user-interruptions 2018-11-29 21:17:31 -07:00
Bryan Ashby 6d2c095976 Fix cb 2018-11-27 22:01:14 -07:00
Bryan Ashby 098c24e48a Fix D/L stats 2018-11-27 21:29:35 -07:00
Bryan Ashby 6cce013187 + MCI: PT - total messages posted today (non-private)
+ MCI: TP - total messages/posts on system (non-private, includes imports, only counts *current*, not all of time)
* Move some stats to startup() calls
* Fix some DATE() comparisons in SQL to use 'localtime' as our timestamps include TZ
* Update luciano_blocktronics SYSSTAT to show more info
2018-11-27 21:21:00 -07:00
Bryan Ashby fb13381bb5 Default back to 'forever' for login history. It's small data... 2018-11-27 19:45:36 -07:00
Bryan Ashby 4b5f26b31b Record offeset again... dur 2018-11-25 20:31:25 -07:00
Bryan Ashby e606ec6f63 Fix ISO timestamps hopefully 2018-11-25 20:29:36 -07:00
Bryan Ashby f471fd0ebe Finally implement "Total Calls Today" MCI: TT
+ Add findSystemLogEntries() to StatLog amongst others
2018-11-25 20:13:48 -07:00
Bryan Ashby ec97b3e8d4 More user/system stat constants & usage 2018-11-25 19:05:16 -07:00
Bryan Ashby 596026d1ce Merge branch '0.0.9-alpha' of github.com:NuSkooler/enigma-bbs into user-interruptions 2018-11-25 10:42:12 -07:00
Bryan Ashby e464f95924 UT MCI now displays theme name, UD displays ID 2018-11-25 10:35:05 -07:00
Mike Ralphson 546fbbd533
oputil_help; correct references to optutil 2018-11-25 13:59:12 +00:00
Bryan Ashby c0de3d7048 Merge branch '0.0.9-alpha' of github.com:NuSkooler/enigma-bbs into user-interruptions 2018-11-24 20:26:19 -07:00
Bryan Ashby 2c4fdfdd5f * Moved oputil.js config import-areas to 'oputil.js mb import-areas'
* 'oputil.js mb import-areas' now *optionally* binds areas to FTN networks. Otherwise only areas are imported
2018-11-24 20:02:19 -07:00
Bryan Ashby 1dafa2854b Fix initial load introduced last nigth :( 2018-11-24 09:39:53 -07:00
Bryan Ashby 2fb3ce83a3 Spelling... 2018-11-24 09:33:20 -07:00
Bryan Ashby 36e9356663 Merge branch '0.0.9-alpha' of github.com:NuSkooler/enigma-bbs into user-interruptions 2018-11-23 22:19:18 -07:00
Bryan Ashby f80e07fcf9 ...and more UserProps 2018-11-23 22:18:15 -07:00
Bryan Ashby d11aca571e Yet more UserProps usage 2018-11-23 22:02:36 -07:00
Bryan Ashby 4050affedf More conversion to UserProps 2018-11-23 17:41:16 -07:00
Bryan Ashby b82c640014 Work on using UserProps, fix up ISO timestamps, etc. 2018-11-23 14:47:18 -07:00
Bryan Ashby f45e785da1 oputil.js user activate <name> will now unlock accounts 2018-11-23 12:02:41 -07:00
Bryan Ashby a4823c0c4a Logging around accoung lock/unlocking 2018-11-23 11:44:46 -07:00
Bryan Ashby df2bf4477e SECURITY UPDATE
* Handle failed login attempts via Telnet
* New lockout features for >= N failed attempts
* New auto-unlock over email feature
* New auto-unlock after N minutes feature
* Code cleanup in users
* Add user_property.js - start using consts for user properties. Clean up over time.
* Update email docs
2018-11-22 23:07:37 -07:00
Bryan Ashby 1f9b963e76 Fix typo 2018-11-22 10:10:53 -07:00
Bryan Ashby 20e9d9ad7e Actually log spawn() failure in Event Scheduler 2018-11-21 22:21:24 -07:00
Bryan Ashby ec1ce3062e Catch bad spawn 2018-11-21 21:24:11 -07:00
Bryan Ashby 472968e81d Cleaner code 2018-11-21 19:50:03 -07:00
Bryan Ashby 9fd819d608 Resolve TODO RE using EnigError for bad login attempts 2018-11-21 19:43:50 -07:00
Bryan Ashby ebc70907d4 Newest messages first when listing msgs from Gopher 2018-11-21 17:55:31 -07:00
Bryan Ashby 3af5b6f509 * Word wrap messages when output via Gopher server
* Fix Gopher startup banner default
2018-11-20 21:02:30 -07:00
Bryan Ashby 3fd526da6f Fix some spelling 2018-11-20 21:01:39 -07:00
Bryan Ashby ec1f437dd9 Fix DEP0005 during file base scan 2018-11-19 20:16:30 -07:00
Bryan Ashby 370f8039db * Use itemFormat/focusItemFormat for set newscan message/file conf/areas
* Docs for set_newscan_date module
2018-11-18 14:19:34 -07:00
Bryan Ashby b34294fbef * Docs + itemFormat/focusItem format for web download manager
* Fix some typos
2018-11-18 12:02:57 -07:00
Bryan Ashby e316b5fe80 Add File Base Download Manager docs 2018-11-18 01:56:40 -07:00
Bryan Ashby 2a95849f7d Add default keys for show art by message/file conf/areas 2018-11-17 21:04:00 -07:00
Bryan Ashby b3ec97cc5c Art asset ACS conditional cleanup: Make more general purpose 2018-11-17 18:56:09 -07:00
Bryan Ashby ac0f54dc9b Better MCI handling 2018-11-17 13:24:16 -07:00
Bryan Ashby 8702e309ae Fix bug in default config / user config merging: Some arrays should be replaced while others should be merged 2018-11-17 13:14:51 -07:00
Bryan Ashby f4b03826b0 Fix --version 2018-11-15 22:21:45 -07:00
Bryan Ashby f9429dd2e6 Move where passwordChar lives 2018-11-15 20:32:08 -07:00
Bryan Ashby 080d1727c2 WIP on real-time interruptions (ie: incoming message)
Still need work on *when* they are allowed with good defaults, etc.
2018-11-14 22:47:20 -07:00
Bryan Ashby 4025c3c643 Merge branch '0.0.9-alpha' of ssh://numinibsd/git/base/enigma-bbs into user-interruptions 2018-11-14 22:05:23 -07:00
Bryan Ashby cc9c143927 Cleanup & prep for real-time interrupt 2018-11-14 22:04:29 -07:00
Bryan Ashby e4cb93a17c Use better logging for archiver spawn() 2018-11-14 21:24:15 -07:00
Bryan Ashby ea4fb090e2 Better error report from spawn() fail in extractTo() 2018-11-14 21:00:21 -07:00
Bryan Ashby b3930d1999 WIP on node-to-node msg
+ Preview
* Fix node IDs
+ Add new MenuModule method for validating MCI codes
2018-11-14 20:51:11 -07:00
Bryan Ashby 941e7d0a03 Fix ./main.js --version 2018-11-14 19:53:14 -07:00
Bryan Ashby 23af00e7ec Add timestamp 2018-11-14 19:52:55 -07:00
Bryan Ashby a88af51f27 Merge branch '0.0.9-alpha' of ssh://numinibsd/git/base/enigma-bbs into user-interruptions 2018-11-13 21:33:42 -07:00
Bryan Ashby 96d30af5d2 POSSIBLY BREAKING:
config/menu.hjson and config/prompt.hjson are now moved to misc/menu_template.in.hjson and config/prompt_template.in.hjson. These are now simply used as template files and copied to config/ with proper naming when issuing 'oputil.js config new'
2018-11-13 21:32:22 -07:00
Bryan Ashby 330e1efa78 Updates to user interruptions & node-to-node message module
* Can now have header/footer art on node-to-node messages
* 'text' and more advanced 'contents' fields
* format via 'messageFormat'
2018-11-13 21:11:33 -07:00
Bryan Ashby d8f0708310 getActiveNodeList -> getActiveConnectionList (be consistent) 2018-11-13 20:03:54 -07:00
Bryan Ashby 5a74cdc8d9 Merge branch '0.0.9-alpha' of ssh://numinibsd/git/base/enigma-bbs into user-interruptions 2018-11-13 20:01:36 -07:00
Bryan Ashby d28b5ce3b2 Even better file name generation for new configs 2018-11-13 19:44:27 -07:00
Bryan Ashby c1f7eb05ca Better sanatization of menu/prompt.hjson files based on board name 2018-11-13 19:40:48 -07:00
Bryan Ashby 23c30533c7 Merge branch '0.0.9-alpha' of ssh://numinibsd/git/base/enigma-bbs into user-interruptions 2018-11-12 22:06:19 -07:00
Bryan Ashby 308f09b291 Proper callback when missing MCI 2018-11-12 22:05:49 -07:00
Bryan Ashby 74b03fe846 Fix exception when no SSH stuff is configured 2018-11-12 22:05:36 -07:00