Add option: showResponseMessageInThreadChannel

cshd
Dragory 2020-11-08 16:46:09 +02:00
parent 17c485306e
commit 623ec15d13
No known key found for this signature in database
GPG Key ID: 5F387BA66DF8AAC1
6 changed files with 23 additions and 8 deletions

View File

@ -331,7 +331,8 @@ Required amount of time (in minutes) the user must be a member of the server bef
#### responseMessage #### responseMessage
**Default:** `Thank you for your message! Our mod team will reply to you here as soon as possible.` **Default:** `Thank you for your message! Our mod team will reply to you here as soon as possible.`
The bot's response to the user when they message the bot and open a new modmail thread The bot's response to the user when they message the bot and open a new modmail thread.
If you have a multi-line or otherwise long `responseMessage`, you might want to turn off [showResponseMessageInThreadChannel](#showResponseMessageInThreadChannel) to reduce clutter in the thread channel on the inbox server.
#### rolesInThreadHeader #### rolesInThreadHeader
**Default:** `off` **Default:** `off`
@ -348,6 +349,11 @@ serverGreetings.541484311354933258.message[] = Welcome to server ID 541484311354
serverGreetings.541484311354933258.message[] = Second line of the greeting. serverGreetings.541484311354933258.message[] = Second line of the greeting.
``` ```
#### showResponseMessageInThreadChannel
**Default:** `on`
Whether to show the [responseMessage](#responseMessage) sent to the user in the thread channel on the inbox server as well.
If you have a multi-line or otherwise long `responseMessage`, it might be a good idea to turn this off to reduce clutter.
#### smallAttachmentLimit #### smallAttachmentLimit
**Default:** `2097152` **Default:** `2097152`
Size limit of `relaySmallAttachmentsAsAttachments` in bytes (default is 2MB) Size limit of `relaySmallAttachmentsAsAttachments` in bytes (default is 2MB)

View File

@ -481,6 +481,7 @@ class Thread {
* @param {boolean} [allowedMentions.everyone] * @param {boolean} [allowedMentions.everyone]
* @param {boolean|string[]} [allowedMentions.roles] * @param {boolean|string[]} [allowedMentions.roles]
* @param {boolean|string[]} [allowedMentions.users] * @param {boolean|string[]} [allowedMentions.users]
* @param {boolean} [allowedMentions.postToThreadChannel]
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async sendSystemMessageToUser(text, opts = {}) { async sendSystemMessageToUser(text, opts = {}) {
@ -495,12 +496,14 @@ class Thread {
const dmContent = await formatters.formatSystemToUserDM(threadMessage); const dmContent = await formatters.formatSystemToUserDM(threadMessage);
const dmMsg = await this._sendDMToUser(dmContent); const dmMsg = await this._sendDMToUser(dmContent);
const inboxContent = await formatters.formatSystemToUserThreadMessage(threadMessage); if (opts.postToThreadChannel !== false) {
const finalInboxContent = typeof inboxContent === "string" ? { content: inboxContent } : inboxContent; const inboxContent = await formatters.formatSystemToUserThreadMessage(threadMessage);
finalInboxContent.allowedMentions = opts.allowedMentions; const finalInboxContent = typeof inboxContent === "string" ? {content: inboxContent} : inboxContent;
const inboxMsg = await this._postToThreadChannel(inboxContent); finalInboxContent.allowedMentions = opts.allowedMentions;
const inboxMsg = await this._postToThreadChannel(inboxContent);
threadMessage.inbox_message_id = inboxMsg.id;
}
threadMessage.inbox_message_id = inboxMsg.id;
threadMessage.dm_channel_id = dmMsg.channel.id; threadMessage.dm_channel_id = dmMsg.channel.id;
threadMessage.dm_message_id = dmMsg.id; threadMessage.dm_message_id = dmMsg.id;

View File

@ -68,6 +68,7 @@
* @property {boolean} [autoAlert=false] * @property {boolean} [autoAlert=false]
* @property {string} [autoAlertDelay="2m"] Delay before auto-alert kicks in. Uses the same format as timed close; for example 1m30s for 1 minute and 30 seconds. * @property {string} [autoAlertDelay="2m"] Delay before auto-alert kicks in. Uses the same format as timed close; for example 1m30s for 1 minute and 30 seconds.
* @property {boolean} [pinThreadHeader=false] * @property {boolean} [pinThreadHeader=false]
* @property {boolean} [showResponseMessageInThreadChannel=true]
* @property {string} [logStorage="local"] * @property {string} [logStorage="local"]
* @property {object} [logOptions] * @property {object} [logOptions]
* @property {string} logOptions.attachmentDirectory * @property {string} logOptions.attachmentDirectory

View File

@ -373,6 +373,11 @@
"default": false "default": false
}, },
"showResponseMessageInThreadChannel": {
"$ref": "#/definitions/customBoolean",
"default": true
},
"logStorage": { "logStorage": {
"type": "string", "type": "string",
"default": "local" "default": "local"

View File

@ -221,7 +221,6 @@ async function createNewThreadForUser(user, opts = {}) {
}); });
const newThread = await findById(newThreadId); const newThread = await findById(newThreadId);
let responseMessageError = null;
if (! quiet) { if (! quiet) {
// Ping moderators of the new thread // Ping moderators of the new thread

View File

@ -169,7 +169,8 @@ function initBaseMessageHandlers() {
const responseMessage = utils.readMultilineConfigValue(config.responseMessage); const responseMessage = utils.readMultilineConfigValue(config.responseMessage);
try { try {
await thread.sendSystemMessageToUser(responseMessage); const postToThreadChannel = config.showResponseMessageInThreadChannel;
await thread.sendSystemMessageToUser(responseMessage, { postToThreadChannel });
} catch (err) { } catch (err) {
await thread.postSystemMessage(`**NOTE:** Could not send auto-response to the user. The error given was: \`${err.message}\``); await thread.postSystemMessage(`**NOTE:** Could not send auto-response to the user. The error given was: \`${err.message}\``);
} }