-
Notifications
You must be signed in to change notification settings - Fork 1
Per User Data Recording and Modification
A lot of the features available for an individual to make their own online persona unique in vDOC or DOC/Citadel do not exist anywhere in Synchronet. Fortunately, the /sbbs/user/
subdirectory is not solely hogged by standard user data. It is also available for any sort of per-user information that needs to be stored, whether it be by external doors, new Synchronet additions, or whatever. I had been contemplating storing 'i'nfo and 'd'oing information in the extended comments section of the userbase record, but that would be a horrible place for a blob. Especially being as I already have utilized this section for notes regarding certain accounts.
This file is for any of the per-user informational setting/display routines, as well as the file IO necessary to ensure that this information is saved in the schema.
See also: JSON User Record Structure
-
userDir
- directory to be used for our own record structures -
settingsFilename
- filename for the user settings set to be stored from here -
maxInfoLines
- for the user's 'i'nfo field -
doingChars
- how many characters can be utilized for the 'd'oing field (once implemented)
-
defaultSettings
- alias set, all debugging options are false, optionals are null -
userDataIO
- for handling disk IO in order to save and retrieve per-user information -
userDataUI
- for handling user interface for setting and displaying information from the per-user infoz
-
stripComments()
- strips blank lines and comments from a JSON blob file (finds where comment header stops and data begins, more accurately) -
loadSettingsBlob()
- loads the dDoc specific settings file -
loadSettings()
- takes the blob returned from above and loads the appropriate user's records (defined by number) into the appropriate JSON object/return -
saveInfo()
- is passed an array (the info field) to store -
openFileWrap()
- avoids duplicating so muchtry
/catch
crap around file access NOTE: This probably could be used in more areas
-
getInfo()
- utilized to retrieve the correct amount of text from the user in order to set the 'i'nfo field as they see fit (almost certainly used directly within the call tosaveInfo()
) -
getDoing()
- does the same for the 'd'oing field -
queryDebugSettings()
- returns the specific user's debug settings -
displayDebugFlags()
- shows each of the user's debug statii -
displayInfo()
- derp
-
cMenu
- Config menu display -
cConfPrompt
- derp
-
reConfigure()
- allows user to change and reconfigure their standard shell options