Merge branch '459-activitypub-integration' of ssh://numinibsd/git/base/enigma-bbs into 459-activitypub-integration

This commit is contained in:
Bryan Ashby 2023-05-11 08:47:14 -06:00
commit cded6a59b5
4 changed files with 48 additions and 27 deletions

View File

@ -379,7 +379,9 @@ exports.getModule = class mrcModule extends MenuModule {
}
// Deliver PrivMsg
else if (message.to_user.toLowerCase() == this.state.alias.toLowerCase()) {
else if (
message.to_user.toLowerCase() == this.state.alias.toLowerCase()
) {
const currentTime = moment().format(
this.client.currentTheme.helpers.getTimeFormat()
);
@ -387,8 +389,6 @@ exports.getModule = class mrcModule extends MenuModule {
'|08' + currentTime + '|00 ' + message.body + '|00'
);
}
}
this.viewControllers.mrcChat.switchFocus(MciViewIds.mrcChat.inputArea);
@ -563,39 +563,27 @@ exports.getModule = class mrcModule extends MenuModule {
* Process known additional server commands directly
*/
case 'afk':
this.sendServerMessage(
`AFK ${message.substr(5)}`
);
this.sendServerMessage(`AFK ${message.substr(5)}`);
break;
case 'roomconfig':
this.sendServerMessage(
`ROOMCONFIG ${message.substr(12)}`
);
this.sendServerMessage(`ROOMCONFIG ${message.substr(12)}`);
break;
case 'roompass':
this.sendServerMessage(
`ROOMPASS ${message.substr(12)}`
);
this.sendServerMessage(`ROOMPASS ${message.substr(12)}`);
break;
case 'status':
this.sendServerMessage(
`STATUS ${message.substr(8)}`
);
this.sendServerMessage(`STATUS ${message.substr(8)}`);
break;
case 'lastseen':
this.sendServerMessage(
`LASTSEEN ${message.substr(10)}`
);
this.sendServerMessage(`LASTSEEN ${message.substr(10)}`);
break;
case 'help':
this.sendServerMessage(
`HELP ${message.substr(6)}`
);
this.sendServerMessage(`HELP ${message.substr(6)}`);
break;
case 'statistics':

View File

@ -183,6 +183,8 @@ General Information:
MessageBase: `usage: oputil.js mb <action> [<arguments>]
Actions:
list-confs List conferences and areas
areafix CMD1 CMD2 ... ADDR Sends an AreaFix NetMail
NetMail is sent to supplied address with the supplied command(s). Multi-part commands
@ -195,6 +197,9 @@ Actions:
packet in the directory specified by PATH. The QWK
BBS ID will be obtained by the final component of PATH.
list-confs arguments:
--areas Include areas within each message conference.
import-areas arguments:
--conf CONF_TAG Conference tag in which to import areas
--network NETWORK Network name/key to associate FTN areas

View File

@ -692,6 +692,30 @@ function exportQWKPacket() {
);
}
const listConferences = () => {
initConfigAndDatabases(err => {
if (err) {
return console.error(err.reason ? err.reason : err.message);
}
const { getSortedAvailMessageConferences } = require('../../core/message_area');
const conferences = getSortedAvailMessageConferences(null, { noClient: true });
for (let conf of conferences) {
console.info(`${conf.confTag} - ${conf.conf.name}`);
if (!argv.areas) {
continue;
}
for (let areaTag of Object.keys(conf.conf.areas)) {
console.info(` ${areaTag} - ${conf.conf.areas[areaTag].name}`);
}
}
});
};
function handleMessageBaseCommand() {
function errUsage() {
return printUsageAndSetExitCode(getHelpFor('MessageBase'), ExitCodes.ERROR);
@ -709,6 +733,7 @@ function handleMessageBaseCommand() {
'import-areas': importAreas,
'qwk-dump': dumpQWKPacket,
'qwk-export': exportQWKPacket,
'list-confs': listConferences,
}[action] || errUsage
)();
}

View File

@ -8,10 +8,10 @@ const theme = require('./theme.js');
const sysValidate = require('./system_view_validate.js');
const UserProps = require('./user_property.js');
const { getISOTimestampString } = require('./database.js');
const EnigAssert = require('./enigma_assert');
// deps
const async = require('async');
const assert = require('assert');
const _ = require('lodash');
const moment = require('moment');
@ -110,7 +110,10 @@ exports.getModule = class UserConfigModule extends MenuModule {
// Handlers
//
saveChanges: function (formData, extraArgs, cb) {
assert(formData.value.password === formData.value.passwordConfirm);
EnigAssert(formData.value.password === formData.value.passwordConfirm);
// cache a copy of |formData| as changing a theme below can invalidate it
formData = _.clone(formData);
const newProperties = {
[UserProps.RealName]: formData.value.realName,
@ -127,7 +130,7 @@ exports.getModule = class UserConfigModule extends MenuModule {
self.availThemeInfo[formData.value.theme].themeId,
};
// runtime set theme
// Runtime set theme
theme.setClientTheme(self.client, newProperties.theme_id);
// persist all changes