From 5dced897d8d1b882c0e75bd8745bd7433605bf96 Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Tue, 12 Jun 2018 14:37:22 +0300 Subject: [PATCH] Log notices as correct sender when it will be shown in active window --- src/models/chan.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/models/chan.js b/src/models/chan.js index 3cd7e99b..57b51c66 100644 --- a/src/models/chan.js +++ b/src/models/chan.js @@ -3,6 +3,7 @@ const _ = require("lodash"); const Helper = require("../helper"); const User = require("./user"); +const Msg = require("./msg"); const storage = require("../plugins/storage"); module.exports = Chan; @@ -185,9 +186,19 @@ Chan.prototype.writeUserLog = function(client, msg) { return; } + let targetChannel = this; + // Is this particular message or channel loggable if (!msg.isLoggable() || !this.isLoggable()) { - return; + // Because notices are nasty and can be shown in active channel on the client + // if there is no open query, we want to always log notices in the sender's name + if (msg.type === Msg.Type.NOTICE && msg.showInActive) { + targetChannel = { + name: msg.from.nick, + }; + } else { + return; + } } // Find the parent network where this channel is in @@ -198,7 +209,7 @@ Chan.prototype.writeUserLog = function(client, msg) { } for (const messageStorage of client.messageStorage) { - messageStorage.index(target.network, this, msg); + messageStorage.index(target.network, targetChannel, msg); } };