Initial sync up with master after Prettier

This commit is contained in:
Bryan Ashby
2022-06-12 13:57:46 -06:00
177 changed files with 23158 additions and 17630 deletions

View File

@@ -2,22 +2,17 @@
'use strict';
// ENiGMA½
const Config = require('./config.js').get;
const Log = require('./logger.js').log;
const {
getMessageAreaByTag,
getMessageConferenceByTag
} = require('./message_area.js');
const clientConnections = require('./client_connections.js');
const StatLog = require('./stat_log.js');
const FileBaseFilters = require('./file_base_filter.js');
const {
formatByteSize,
} = require('./string_util.js');
const ANSI = require('./ansi_term.js');
const UserProps = require('./user_property.js');
const SysProps = require('./system_property.js');
const SysLogKeys = require('./system_log.js');
const Config = require('./config.js').get;
const Log = require('./logger.js').log;
const { getMessageAreaByTag, getMessageConferenceByTag } = require('./message_area.js');
const clientConnections = require('./client_connections.js');
const StatLog = require('./stat_log.js');
const FileBaseFilters = require('./file_base_filter.js');
const { formatByteSize } = require('./string_util.js');
const ANSI = require('./ansi_term.js');
const UserProps = require('./user_property.js');
const SysProps = require('./system_property.js');
const SysLogKeys = require('./system_log.js');
// deps
const packageJson = require('../package.json');
@@ -26,8 +21,8 @@ const _ = require('lodash');
const moment = require('moment');
const async = require('async');
exports.getPredefinedMCIValue = getPredefinedMCIValue;
exports.init = init;
exports.getPredefinedMCIValue = getPredefinedMCIValue;
exports.init = init;
function init(cb) {
async.series(
@@ -49,16 +44,21 @@ function init(cb) {
// :TODO: move this to stat_log.js like system memory is handled
function setNextRandomRumor(cb) {
StatLog.getSystemLogEntries(SysLogKeys.UserAddedRumorz, StatLog.Order.Random, 1, (err, entry) => {
if(entry) {
entry = entry[0];
StatLog.getSystemLogEntries(
SysLogKeys.UserAddedRumorz,
StatLog.Order.Random,
1,
(err, entry) => {
if (entry) {
entry = entry[0];
}
const randRumor = entry && entry.log_value ? entry.log_value : '';
StatLog.setNonPersistentSystemStat(SysProps.NextRandomRumor, randRumor);
if (cb) {
return cb(null);
}
}
const randRumor = entry && entry.log_value ? entry.log_value : '';
StatLog.setNonPersistentSystemStat(SysProps.NextRandomRumor, randRumor);
if(cb) {
return cb(null);
}
});
);
}
function getUserRatio(client, propA, propB) {
@@ -85,11 +85,17 @@ const PREDEFINED_MCI_GENERATORS = {
//
// Board
//
BN : function boardName() { return Config().general.boardName; },
BN: function boardName() {
return Config().general.boardName;
},
// ENiGMA
VL : function versionLabel() { return 'ENiGMA½ v' + packageJson.version; },
VN : function version() { return packageJson.version; },
VL: function versionLabel() {
return 'ENiGMA½ v' + packageJson.version;
},
VN: function version() {
return packageJson.version;
},
// +op info
SN : function opUserName() { return StatLog.getSystemStat(SysProps.SysOpUsername); },
@@ -127,62 +133,104 @@ const PREDEFINED_MCI_GENERATORS = {
const activeFilter = FileBaseFilters.getActiveFilter(client);
return activeFilter ? activeFilter.name : '(Unknown)';
},
DN : function userNumDownloads(client) { return userStatAsCountString(client, UserProps.FileDlTotalCount, 0); }, // Obv/2
DK : function userByteDownload(client) { // Obv/2 uses DK=downloaded Kbytes
DN: function userNumDownloads(client) {
return userStatAsCountString(client, UserProps.FileDlTotalCount, 0);
}, // Obv/2
DK: function userByteDownload(client) {
// Obv/2 uses DK=downloaded Kbytes
const byteSize = StatLog.getUserStatNum(client.user, UserProps.FileDlTotalBytes);
return formatByteSize(byteSize, true); // true=withAbbr
return formatByteSize(byteSize, true); // true=withAbbr
},
UP : function userNumUploads(client) { return userStatAsCountString(client, UserProps.FileUlTotalCount, 0); }, // Obv/2
UK : function userByteUpload(client) { // Obv/2 uses UK=uploaded Kbytes
UP: function userNumUploads(client) {
return userStatAsCountString(client, UserProps.FileUlTotalCount, 0);
}, // Obv/2
UK: function userByteUpload(client) {
// Obv/2 uses UK=uploaded Kbytes
const byteSize = StatLog.getUserStatNum(client.user, UserProps.FileUlTotalBytes);
return formatByteSize(byteSize, true); // true=withAbbr
return formatByteSize(byteSize, true); // true=withAbbr
},
NR : function userUpDownRatio(client) { // Obv/2
return getUserRatio(client, UserProps.FileUlTotalCount, UserProps.FileDlTotalCount);
NR: function userUpDownRatio(client) {
// Obv/2
return getUserRatio(
client,
UserProps.FileUlTotalCount,
UserProps.FileDlTotalCount
);
},
KR : function userUpDownByteRatio(client) { // Obv/2 uses KR=upload/download Kbyte ratio
return getUserRatio(client, UserProps.FileUlTotalBytes, UserProps.FileDlTotalBytes);
KR: function userUpDownByteRatio(client) {
// Obv/2 uses KR=upload/download Kbyte ratio
return getUserRatio(
client,
UserProps.FileUlTotalBytes,
UserProps.FileDlTotalBytes
);
},
MS : function accountCreated(client) {
return moment(client.user.properties[UserProps.AccountCreated]).format(client.currentTheme.helpers.getDateFormat());
MS: function accountCreated(client) {
return moment(client.user.properties[UserProps.AccountCreated]).format(
client.currentTheme.helpers.getDateFormat()
);
},
PS : function userPostCount(client) { return userStatAsCountString(client, UserProps.MessagePostCount, 0); },
PC : function userPostCallRatio(client) { return getUserRatio(client, UserProps.MessagePostCount, UserProps.LoginCount); },
MD : function currentMenuDescription(client) {
return _.has(client, 'currentMenuModule.menuConfig.desc') ? client.currentMenuModule.menuConfig.desc : '';
PS: function userPostCount(client) {
return userStatAsCountString(client, UserProps.MessagePostCount, 0);
},
PC: function userPostCallRatio(client) {
return getUserRatio(client, UserProps.MessagePostCount, UserProps.LoginCount);
},
MA : function messageAreaName(client) {
const area = getMessageAreaByTag(client.user.properties[UserProps.MessageAreaTag]);
MD: function currentMenuDescription(client) {
return _.has(client, 'currentMenuModule.menuConfig.desc')
? client.currentMenuModule.menuConfig.desc
: '';
},
MA: function messageAreaName(client) {
const area = getMessageAreaByTag(
client.user.properties[UserProps.MessageAreaTag]
);
return area ? area.name : '';
},
MC : function messageConfName(client) {
const conf = getMessageConferenceByTag(client.user.properties[UserProps.MessageConfTag]);
MC: function messageConfName(client) {
const conf = getMessageConferenceByTag(
client.user.properties[UserProps.MessageConfTag]
);
return conf ? conf.name : '';
},
ML : function messageAreaDescription(client) {
const area = getMessageAreaByTag(client.user.properties[UserProps.MessageAreaTag]);
ML: function messageAreaDescription(client) {
const area = getMessageAreaByTag(
client.user.properties[UserProps.MessageAreaTag]
);
return area ? area.desc : '';
},
CM : function messageConfDescription(client) {
const conf = getMessageConferenceByTag(client.user.properties[UserProps.MessageConfTag]);
CM: function messageConfDescription(client) {
const conf = getMessageConferenceByTag(
client.user.properties[UserProps.MessageConfTag]
);
return conf ? conf.desc : '';
},
SH : function termHeight(client) { return client.term.termHeight.toString(); },
SW : function termWidth(client) { return client.term.termWidth.toString(); },
SH: function termHeight(client) {
return client.term.termHeight.toString();
},
SW: function termWidth(client) {
return client.term.termWidth.toString();
},
AC : function achievementCount(client) { return userStatAsCountString(client, UserProps.AchievementTotalCount, 0); },
AP : function achievementPoints(client) { return userStatAsCountString(client, UserProps.AchievementTotalPoints, 0); },
AC: function achievementCount(client) {
return userStatAsCountString(client, UserProps.AchievementTotalCount, 0);
},
AP: function achievementPoints(client) {
return userStatAsCountString(client, UserProps.AchievementTotalPoints, 0);
},
DR : function doorRuns(client) { return userStatAsCountString(client, UserProps.DoorRunTotalCount, 0); },
DM : function doorFriendlyRunTime(client) {
DR: function doorRuns(client) {
return userStatAsCountString(client, UserProps.DoorRunTotalCount, 0);
},
DM: function doorFriendlyRunTime(client) {
const minutes = client.user.properties[UserProps.DoorRunTotalMinutes] || 0;
return moment.duration(minutes, 'minutes').humanize();
},
TO : function friendlyTotalTimeOnSystem(client) {
TO: function friendlyTotalTimeOnSystem(client) {
const minutes = client.user.properties[UserProps.MinutesOnlineTotalCount] || 0;
return moment.duration(minutes, 'minutes').humanize();
},
@@ -204,35 +252,44 @@ const PREDEFINED_MCI_GENERATORS = {
//
// Date/Time
//
DT : function date(client) { return moment().format(client.currentTheme.helpers.getDateFormat()); },
CT : function time(client) { return moment().format(client.currentTheme.helpers.getTimeFormat()) ;},
DT: function date(client) {
return moment().format(client.currentTheme.helpers.getDateFormat());
},
CT: function time(client) {
return moment().format(client.currentTheme.helpers.getTimeFormat());
},
//
// OS/System Info
//
// https://github.com/nodejs/node-v0.x-archive/issues/25769
//
OS : function operatingSystem() {
return {
linux : 'Linux',
darwin : 'OS X',
win32 : 'Windows',
sunos : 'SunOS',
freebsd : 'FreeBSD',
android : 'Android',
openbsd : 'OpenBSD',
aix : 'IBM AIX',
}[os.platform()] || os.type();
OS: function operatingSystem() {
return (
{
linux: 'Linux',
darwin: 'OS X',
win32: 'Windows',
sunos: 'SunOS',
freebsd: 'FreeBSD',
android: 'Android',
openbsd: 'OpenBSD',
aix: 'IBM AIX',
}[os.platform()] || os.type()
);
},
OA : function systemArchitecture() { return os.arch(); },
OA: function systemArchitecture() {
return os.arch();
},
SC : function systemCpuModel() {
SC: function systemCpuModel() {
//
// Clean up CPU strings a bit for better display
//
return os.cpus()[0].model
.replace(/\(R\)|\(TM\)|processor|CPU/ig, '')
return os
.cpus()[0]
.model.replace(/\(R\)|\(TM\)|processor|CPU/gi, '')
.replace(/\s+(?= )/g, '')
.trim();
},
@@ -259,12 +316,14 @@ const PREDEFINED_MCI_GENERATORS = {
NV : function nodeVersion() { return process.version; },
AN : function activeNodes() { return clientConnections.getActiveConnections(clientConnections.UserVisibleConnections).length.toString(); },
TC : function totalCalls() { return StatLog.getSystemStat(SysProps.LoginCount).toLocaleString(); },
TT : function totalCallsToday() {
TC: function totalCalls() {
return StatLog.getSystemStat(SysProps.LoginCount).toLocaleString();
},
TT: function totalCallsToday() {
return StatLog.getSystemStat(SysProps.LoginsToday).toLocaleString();
},
RR : function randomRumor() {
RR: function randomRumor() {
// start the process of picking another random one
setNextRandomRumor();
@@ -277,21 +336,21 @@ const PREDEFINED_MCI_GENERATORS = {
SD : function systemNumDownloads() { return StatLog.getFriendlySystemStat(SysProps.FileDlTotalCount, 0); },
SO : function systemByteDownload() {
const byteSize = StatLog.getSystemStatNum(SysProps.FileDlTotalBytes);
return formatByteSize(byteSize, true); // true=withAbbr
return formatByteSize(byteSize, true); // true=withAbbr
},
SU : function systemNumUploads() { return StatLog.getFriendlySystemStat(SysProps.FileUlTotalCount, 0); },
SP : function systemByteUpload() {
const byteSize = StatLog.getSystemStatNum(SysProps.FileUlTotalBytes);
return formatByteSize(byteSize, true); // true=withAbbr
return formatByteSize(byteSize, true); // true=withAbbr
},
TF : function totalFilesOnSystem() {
TF: function totalFilesOnSystem() {
const areaStats = StatLog.getSystemStat(SysProps.FileBaseAreaStats);
return _.get(areaStats, 'totalFiles', 0).toLocaleString();
},
TB : function totalBytesOnSystem() {
const areaStats = StatLog.getSystemStat(SysProps.FileBaseAreaStats);
const totalBytes = parseInt(_.get(areaStats, 'totalBytes', 0));
return formatByteSize(totalBytes, true); // true=withAbbr
TB: function totalBytesOnSystem() {
const areaStats = StatLog.getSystemStat(SysProps.FileBaseAreaStats);
const totalBytes = parseInt(_.get(areaStats, 'totalBytes', 0));
return formatByteSize(totalBytes, true); // true=withAbbr
},
PT : function messagesPostedToday() { // Obv/2
return StatLog.getFriendlySystemStat(SysProps.MessagesToday, 0);
@@ -346,26 +405,35 @@ const PREDEFINED_MCI_GENERATORS = {
//
// Special handling for XY
//
XY : function xyHack() { return; /* nothing */ },
XY: function xyHack() {
return; /* nothing */
},
//
// Various movement by N
//
CF : function cursorForwardBy(client, n = 1) { return ANSI.forward(n); },
CB : function cursorBackBy(client, n = 1) { return ANSI.back(n); },
CU : function cursorUpBy(client, n = 1) { return ANSI.up(n); },
CD : function cursorDownBy(client, n = 1) { return ANSI.down(n); },
CF: function cursorForwardBy(client, n = 1) {
return ANSI.forward(n);
},
CB: function cursorBackBy(client, n = 1) {
return ANSI.back(n);
},
CU: function cursorUpBy(client, n = 1) {
return ANSI.up(n);
},
CD: function cursorDownBy(client, n = 1) {
return ANSI.down(n);
},
};
function getPredefinedMCIValue(client, code, extra) {
if(!client || !code) {
if (!client || !code) {
return;
}
const generator = PREDEFINED_MCI_GENERATORS[code];
if(generator) {
if (generator) {
let value;
try {
value = generator(client, extra);