Merge pull request #150
* Hash message links so messages with different links aren't considered… * Add option to toggle if links should be considered for the message ha…
This commit is contained in:
@@ -73,6 +73,7 @@ internal class Configuration : IPluginConfiguration
|
|||||||
public bool FilterIncludePreviousSessions;
|
public bool FilterIncludePreviousSessions;
|
||||||
public bool SortAutoTranslate;
|
public bool SortAutoTranslate;
|
||||||
public bool CollapseDuplicateMessages;
|
public bool CollapseDuplicateMessages;
|
||||||
|
public bool CollapseKeepUniqueLinks;
|
||||||
public bool PlaySounds = true;
|
public bool PlaySounds = true;
|
||||||
public bool KeepInputFocus = true;
|
public bool KeepInputFocus = true;
|
||||||
public int MaxLinesToRender = 10_000; // 1-10000
|
public int MaxLinesToRender = 10_000; // 1-10000
|
||||||
@@ -163,6 +164,7 @@ internal class Configuration : IPluginConfiguration
|
|||||||
FilterIncludePreviousSessions = other.FilterIncludePreviousSessions;
|
FilterIncludePreviousSessions = other.FilterIncludePreviousSessions;
|
||||||
SortAutoTranslate = other.SortAutoTranslate;
|
SortAutoTranslate = other.SortAutoTranslate;
|
||||||
CollapseDuplicateMessages = other.CollapseDuplicateMessages;
|
CollapseDuplicateMessages = other.CollapseDuplicateMessages;
|
||||||
|
CollapseKeepUniqueLinks = other.CollapseKeepUniqueLinks;
|
||||||
PlaySounds = other.PlaySounds;
|
PlaySounds = other.PlaySounds;
|
||||||
KeepInputFocus = other.KeepInputFocus;
|
KeepInputFocus = other.KeepInputFocus;
|
||||||
MaxLinesToRender = other.MaxLinesToRender;
|
MaxLinesToRender = other.MaxLinesToRender;
|
||||||
|
|||||||
+13
-4
@@ -137,10 +137,19 @@ internal partial class Message
|
|||||||
|
|
||||||
private int GenerateHash()
|
private int GenerateHash()
|
||||||
{
|
{
|
||||||
return SortCode.GetHashCode()
|
var hash = SortCode.GetHashCode()
|
||||||
^ ExtraChatChannel.GetHashCode()
|
^ ExtraChatChannel.GetHashCode()
|
||||||
^ string.Join("", Sender.Select(c => c.StringValue())).GetHashCode()
|
^ string.Join("", Sender.Select(c => c.StringValue())).GetHashCode()
|
||||||
^ string.Join("", Content.Select(c => c.StringValue())).GetHashCode();
|
^ string.Join("", Content.Select(c => c.StringValue())).GetHashCode();
|
||||||
|
|
||||||
|
if (Plugin.Config.CollapseKeepUniqueLinks)
|
||||||
|
{
|
||||||
|
// Hash the link too for something like DeathRecap where the message is the same
|
||||||
|
// but the link is different
|
||||||
|
hash ^= string.Join("", Content.Select(c => c.Link?.GetHashCode())).GetHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Guid ExtractExtraChatChannel(SeString contentSource)
|
private static Guid ExtractExtraChatChannel(SeString contentSource)
|
||||||
|
|||||||
Generated
+19
@@ -2075,6 +2075,24 @@ namespace ChatTwo.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Don't collapse messages if they link to different things with the same text.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Options_CollapseDuplicateMsgUniqueLink_Description {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Options_CollapseDuplicateMsgUniqueLink_Description", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Keep unique links seperate
|
||||||
|
/// </summary>
|
||||||
|
internal static string Options_CollapseDuplicateMsgUniqueLink_Name {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Options_CollapseDuplicateMsgUniqueLink_Name", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to The side of {0} to display help for commands on..
|
/// Looks up a localized string similar to The side of {0} to display help for commands on..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -3867,3 +3885,4 @@ namespace ChatTwo.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+6
@@ -950,6 +950,12 @@ Sie wurden gewarnt.</value>
|
|||||||
<data name="Options_CollapseDuplicateMessages_Description">
|
<data name="Options_CollapseDuplicateMessages_Description">
|
||||||
<value>Ersetzt sich wiederholende Nachrichten mit einem Zähler, der der originalen Nachricht angehängt wird.</value>
|
<value>Ersetzt sich wiederholende Nachrichten mit einem Zähler, der der originalen Nachricht angehängt wird.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Options_CollapseDuplicateMsgUniqueLink_Name">
|
||||||
|
<value>Trenne seperate Verlinkungen</value>
|
||||||
|
</data>
|
||||||
|
<data name="Options_CollapseDuplicateMsgUniqueLink_Description">
|
||||||
|
<value>Trenne Nachrichten die den gleichen text mit verschieden Verlinkungen haben.</value>
|
||||||
|
</data>
|
||||||
<data name="Options_Tabs_ExtraChatChannels">
|
<data name="Options_Tabs_ExtraChatChannels">
|
||||||
<value>ExtraChat-Kanäle</value>
|
<value>ExtraChat-Kanäle</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -961,6 +961,12 @@
|
|||||||
<data name="Options_CollapseDuplicateMessages_Description">
|
<data name="Options_CollapseDuplicateMessages_Description">
|
||||||
<value>Replace consecutive duplicate messages with a counter appended to the first instance of the message.</value>
|
<value>Replace consecutive duplicate messages with a counter appended to the first instance of the message.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Options_CollapseDuplicateMsgUniqueLink_Name">
|
||||||
|
<value>Keep unique links seperate</value>
|
||||||
|
</data>
|
||||||
|
<data name="Options_CollapseDuplicateMsgUniqueLink_Description">
|
||||||
|
<value>Don't collapse messages if they link to different things with the same text.</value>
|
||||||
|
</data>
|
||||||
<data name="Options_Tabs_ExtraChatChannels">
|
<data name="Options_Tabs_ExtraChatChannels">
|
||||||
<value>ExtraChat channels</value>
|
<value>ExtraChat channels</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -109,6 +109,11 @@ internal sealed class Display : ISettingsTab
|
|||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
|
|
||||||
ImGuiUtil.OptionCheckbox(ref Mutable.CollapseDuplicateMessages, Language.Options_CollapseDuplicateMessages_Name, Language.Options_CollapseDuplicateMessages_Description);
|
ImGuiUtil.OptionCheckbox(ref Mutable.CollapseDuplicateMessages, Language.Options_CollapseDuplicateMessages_Name, Language.Options_CollapseDuplicateMessages_Description);
|
||||||
|
if (Mutable.CollapseDuplicateMessages)
|
||||||
|
{
|
||||||
|
using var _ = ImRaii.PushIndent();
|
||||||
|
ImGuiUtil.OptionCheckbox(ref Mutable.CollapseKeepUniqueLinks, Language.Options_CollapseDuplicateMsgUniqueLink_Name, Language.Options_CollapseDuplicateMsgUniqueLink_Description);
|
||||||
|
}
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user