From e3a3b1c53e760dbdcad2d82e297117dc90a90ee3 Mon Sep 17 00:00:00 2001 From: tduva Date: Sat, 29 Aug 2020 00:17:09 +0200 Subject: [PATCH] Improve chatlog whitelist/blacklist for whispers - Allow whisper channels to be added through the settings GUI - Add exception for $_whisper_ to also affect per user logging --- .../gui/components/help/help-settings.html | 4 ++++ .../gui/components/settings/LogSettings.java | 3 ++- src/chatty/util/chatlog/ChatLog.java | 20 ++++++++++++++----- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/chatty/gui/components/help/help-settings.html b/src/chatty/gui/components/help/help-settings.html index d713bec2b..98c4df8b5 100644 --- a/src/chatty/gui/components/help/help-settings.html +++ b/src/chatty/gui/components/help/help-settings.html @@ -1193,6 +1193,10 @@

Channels

  • off - Log no channels whatsoever
  • +

    Tip: Add $_whisper_ to the whitelist or blacklist + to affect all whispers that are output in the "One Window" tab or + "Per User" tabs.

    +

    Other Settings

    Folder
    diff --git a/src/chatty/gui/components/settings/LogSettings.java b/src/chatty/gui/components/settings/LogSettings.java index df13a51a6..ea7d61bac 100644 --- a/src/chatty/gui/components/settings/LogSettings.java +++ b/src/chatty/gui/components/settings/LogSettings.java @@ -321,7 +321,8 @@ private static class ChannelFormatter implements DataFormatter { */ @Override public String format(String input) { - if (input != null && !input.isEmpty() && !input.startsWith("#")) { + if (input != null && !input.isEmpty() && !input.startsWith("#") + && !input.startsWith("$")) { input = "#"+input; } if (input.length() == 1) { diff --git a/src/chatty/util/chatlog/ChatLog.java b/src/chatty/util/chatlog/ChatLog.java index 69935ca54..d53097cdf 100644 --- a/src/chatty/util/chatlog/ChatLog.java +++ b/src/chatty/util/chatlog/ChatLog.java @@ -293,14 +293,24 @@ private boolean isChanEnabled(String channel) { if (mode.equals("off")) { return false; } - if (mode.equals("always")) { + else if (mode.equals("always")) { return true; } - if (mode.equals("blacklist") && !settings.listContains("logBlacklist", channel)) { - return true; + else if (mode.equals("blacklist")) { + if (!settings.listContains("logBlacklist", channel)) { + return true; + } + if (channel.startsWith("$") && !settings.listContains("logBlacklist", "$_whisper_")) { + return true; + } } - if (mode.equals("whitelist") && settings.listContains("logWhitelist", channel)) { - return true; + else if (mode.equals("whitelist")) { + if (settings.listContains("logWhitelist", channel)) { + return true; + } + if (channel.startsWith("$") && settings.listContains("logWhitelist", "$_whisper_")) { + return true; + } } return false; }