Skip to content

Commit

Permalink
latest
Browse files Browse the repository at this point in the history
  • Loading branch information
John Kauffman committed Apr 22, 2024
1 parent fbde3d7 commit adf1f80
Show file tree
Hide file tree
Showing 22 changed files with 321 additions and 152 deletions.
4 changes: 2 additions & 2 deletions EQLogParser/EQLogParser.csproj
Expand Up @@ -170,7 +170,7 @@
</PackageReference>
<PackageReference Include="LiteDB" Version="5.0.17" />
<PackageReference Include="log4net">
<Version>2.0.16</Version>
<Version>2.0.17</Version>
</PackageReference>
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.5" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
Expand All @@ -190,7 +190,7 @@
<PackageReference Include="Syncfusion.Themes.MaterialLight.WPF" Version="24.2.4" />
<PackageReference Include="Syncfusion.Tools.WPF" Version="24.2.4" />
<PackageReference Include="Syncfusion.Tools.WPF.Classic" Version="22.2.5" />
<PackageReference Include="Microsoft.Windows.Compatibility" Version="8.0.2" />
<PackageReference Include="Microsoft.Windows.Compatibility" Version="8.0.4" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
</ItemGroup>
<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions EQLogParser/Properties/AssemblyInfo.cs
Expand Up @@ -53,7 +53,7 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.2.11")]
[assembly: AssemblyFileVersion("2.2.11")]
[assembly: AssemblyVersion("2.2.12")]
[assembly: AssemblyFileVersion("2.2.12")]
[assembly: XmlConfigurator(Watch = true)]
[assembly: SupportedOSPlatform("windows10.0")]
16 changes: 15 additions & 1 deletion EQLogParser/data/releasenotes.rtf
@@ -1,6 +1,20 @@
{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil\fcharset2 Symbol;}}
{\*\generator Riched20 10.0.22621}\viewkind4\uc1
\pard\ul\f0\fs20\lang1033 Updates in Version 2.2.11\ulnone\par
\pard\ul\f0\fs20\lang1033 Updates in Version 2.2.12\ulnone\par
\par

\pard
{\pntext\f0 1.\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pndec{\pntxta.}}
\fi-360\li720 Added Active Color and Font Color options to Character configuration for Triggers. If set they'll be used over the Overlay or Trigger's settings for that character.\par
{\pntext\f0 2.\tab}Update Log Management to archive logs during zoning in addition to startup/when logs are first opened.\par
{\pntext\f0 3.\tab}Added 1 Day and 3 Days options to Log Management.\par
{\pntext\f0 4.\tab}Fix for installer getting confused about which .NET versions are installed. Now it directly checks the dotnet directory under Program Files.\par
{\pntext\f0 5.\tab}Fix for tree tables sizing when changing fonts.\par
{\pntext\f0 6.\tab}Updates spell data.\par
{\pntext\f0 7.\tab}Updated log4net dependency.\par

\pard\par
\ul Updates in Version 2.2.11\ulnone\par
\par

\pard
Expand Down
152 changes: 110 additions & 42 deletions EQLogParser/data/spells.txt

Large diffs are not rendered by default.

11 changes: 10 additions & 1 deletion EQLogParser/src/control/main/LogReader.cs
Expand Up @@ -70,6 +70,7 @@ public double GetProgress()
}

private void OnFileCreated(object sender, FileSystemEventArgs e) => StartReadingFile();

private void OnFileMoved(object sender, FileSystemEventArgs e)
{
_cts?.Cancel();
Expand Down Expand Up @@ -169,7 +170,8 @@ private void HandleLine(string theLine, ref string previous, ref double doubleVa
{
if (theLine.Length > 28)
{
if (previous == null || !theLine.AsSpan(1, 24).SequenceEqual(previous.AsSpan(1, 24)))
var lineSpan = theLine.AsSpan();
if (previous == null || !lineSpan.Slice(1, 24).SequenceEqual(previous.AsSpan(1, 24)))
{
var dateTime = DateUtil.ParseStandardDate(theLine);
if (dateTime == DateTime.MinValue)
Expand All @@ -181,6 +183,13 @@ private void HandleLine(string theLine, ref string previous, ref double doubleVa
}

if (cancelToken.IsCancellationRequested) return;

// if zoning during monitor try to archive
if (monitor && lineSpan[27..].StartsWith("LOADING, PLEASE WAIT..."))
{
FileUtil.ArchiveFile(this);
}

_lines.Add(Tuple.Create(theLine, doubleValue, monitor), cancelToken);
previous = theLine;
}
Expand Down
1 change: 1 addition & 0 deletions EQLogParser/src/control/main/MainActions.cs
Expand Up @@ -316,6 +316,7 @@ internal static void LoadTheme(MainWindow main, string theme)
{
Application.Current.Resources["EQTitleSize"] = MainWindow.CurrentFontSize + 2;
Application.Current.Resources["EQContentSize"] = MainWindow.CurrentFontSize;
Application.Current.Resources["EQDescriptionSize"] = MainWindow.CurrentFontSize - 1;
Application.Current.Resources["EQButtonHeight"] = MainWindow.CurrentFontSize + 12 + (MainWindow.CurrentFontSize % 2 == 0 ? 1 : 0);
Application.Current.Resources["EQTableHeaderRowHeight"] = MainWindow.CurrentFontSize + 14;
Application.Current.Resources["EQTableRowHeight"] = MainWindow.CurrentFontSize + 12;
Expand Down
15 changes: 8 additions & 7 deletions EQLogParser/src/control/managers/TriggerManager.cs
Expand Up @@ -95,7 +95,7 @@ internal void SetTestProcessor(TriggerConfig config, BlockingCollection<Tuple<st
_testProcessor?.Dispose();
const string name = TriggerStateManager.DefaultUser;
_testProcessor = new TriggerProcessor(name, $"Trigger Tester ({name})", ConfigUtil.PlayerName, config.Voice,
config.VoiceRate, AddTextEvent, AddTimerEvent);
config.VoiceRate, null, null, AddTextEvent, AddTimerEvent);
_testProcessor.SetTesting(true);
_testProcessor.LinkTo(collection);
UiUtil.InvokeAsync(() => EventsProcessorsUpdated?.Invoke(true));
Expand All @@ -108,7 +108,7 @@ internal void SetTestProcessor(TriggerCharacter character, BlockingCollection<Tu
var playerName = character.Name;
FileUtil.ParseFileName(character.FilePath, ref playerName, ref server);
_testProcessor = new TriggerProcessor(character.Id, $"Trigger Tester ({character.Name})", playerName, character.Voice,
character.VoiceRate, AddTextEvent, AddTimerEvent);
character.VoiceRate, character.ActiveColor, character.FontColor, AddTextEvent, AddTimerEvent);
_testProcessor.SetTesting(true);
_testProcessor.LinkTo(collection);
UiUtil.InvokeAsync(() => EventsProcessorsUpdated?.Invoke(true));
Expand Down Expand Up @@ -201,7 +201,7 @@ private void ConfigDoUpdate(object sender, EventArgs e)
var playerName = character.Name;
FileUtil.ParseFileName(character.FilePath, ref playerName, ref server);
var reader = new LogReader(new TriggerProcessor(character.Id, character.Name, playerName,
character.Voice, character.VoiceRate, AddTextEvent, AddTimerEvent), character.FilePath);
character.Voice, character.VoiceRate, character.ActiveColor, character.FontColor, AddTextEvent, AddTimerEvent), character.FilePath);
_logReaders.Add(reader);
RunningFiles[character.FilePath] = true;
}
Expand All @@ -220,7 +220,7 @@ private void ConfigDoUpdate(object sender, EventArgs e)
if (MainWindow.CurrentLogFile is { } currentFile)
{
_logReaders.Add(new LogReader(new TriggerProcessor(TriggerStateManager.DefaultUser, TriggerStateManager.DefaultUser,
ConfigUtil.PlayerName, config.Voice, config.VoiceRate, AddTextEvent, AddTimerEvent), currentFile));
ConfigUtil.PlayerName, config.Voice, config.VoiceRate, null, null, AddTextEvent, AddTimerEvent), currentFile));
((MainWindow)Application.Current?.MainWindow)?.ShowTriggersEnabled(true);

// only 1 running file in basic mode
Expand Down Expand Up @@ -381,9 +381,10 @@ private void WindowTick(Dictionary<string, OverlayWindowData> windows, Dispatche
}
}

private void AddTextEvent(string text, Trigger trigger)
private void AddTextEvent(string text, Trigger trigger, string fontColor)
{
var beginTicks = DateTime.UtcNow.Ticks;
fontColor ??= trigger.FontColor;
UiUtil.InvokeAsync(() =>
{
var textOverlayFound = false;
Expand All @@ -401,7 +402,7 @@ private void AddTextEvent(string text, Trigger trigger)
if (windowData != null)
{
var brush = TriggerUtil.GetBrush(trigger.FontColor);
var brush = UiUtil.GetBrush(fontColor);
(windowData.TheWindow as TextOverlayWindow)?.AddTriggerText(text, beginTicks, brush);
textOverlayFound = true;
}
Expand All @@ -416,7 +417,7 @@ private void AddTextEvent(string text, Trigger trigger)
}
// using default
var brush = TriggerUtil.GetBrush(trigger.FontColor);
var brush = UiUtil.GetBrush(fontColor);
(windowData?.TheWindow as TextOverlayWindow)?.AddTriggerText(text, beginTicks, brush);
textOverlayFound = true;
}
Expand Down
20 changes: 12 additions & 8 deletions EQLogParser/src/control/prcoessors/TriggerProcessor.cs
Expand Up @@ -32,7 +32,7 @@ internal partial class TriggerProcessor : ILogProcessor
private readonly List<TimerData> _activeTimers = [];
private readonly Dictionary<string, Dictionary<string, RepeatedData>> _repeatedTextTimes = [];
private readonly Dictionary<string, Dictionary<string, RepeatedData>> _repeatedTimerTimes = [];
private readonly Action<string, Trigger> _addTextEvent;
private readonly Action<string, Trigger, string> _addTextEvent;
private readonly Action<Trigger, List<TimerData>> _addTimerEvent;
private readonly SpeechSynthesizer _synth;
private readonly SoundPlayer _soundPlayer;
Expand All @@ -46,15 +46,19 @@ internal partial class TriggerProcessor : ILogProcessor
private Task _chatTask;
private Task _triggerTimeTask;
private Task _processTask;
private string _activeColor;
private string _fontColor;
private bool _isTesting;
private bool _ready = true;

internal TriggerProcessor(string id, string name, string playerName, string voice, int voiceRate,
Action<string, Trigger> addTextEvent, Action<Trigger, List<TimerData>> addTimerEvent)
string activeColor, string fontColor, Action<string, Trigger, string> addTextEvent, Action<Trigger, List<TimerData>> addTimerEvent)
{
CurrentCharacterId = id;
CurrentProcessorName = name;
_currentPlayer = playerName;
_activeColor = activeColor;
_fontColor = fontColor;

_addTextEvent = addTextEvent;
_addTimerEvent = addTimerEvent;
Expand Down Expand Up @@ -315,7 +319,7 @@ private void CheckTimers(TriggerWrapper wrapper, LineData lineData)

if (ProcessDisplayText(displayText, lineData.Action, earlyMatches, timerData.OriginalMatches) is { } updatedDisplayText)
{
_addTextEvent(updatedDisplayText, wrapper.TriggerData);
_addTextEvent(updatedDisplayText, wrapper.TriggerData, _fontColor);
}

AddEntry(lineData, wrapper, "Timer End Early");
Expand Down Expand Up @@ -385,7 +389,7 @@ private void HandleTrigger(TriggerWrapper wrapper, LineData lineData, long start
updatedDisplayText = updatedDisplayText.Replace("{repeated}", currentCount.ToString(), StringComparison.OrdinalIgnoreCase);
}

_addTextEvent(updatedDisplayText, wrapper.TriggerData);
_addTextEvent(updatedDisplayText, wrapper.TriggerData, _fontColor);
}

if (ProcessDisplayText(wrapper.ModifiedShare, lineData.Action, matches, null) is { } updatedShareText)
Expand Down Expand Up @@ -474,7 +478,7 @@ private void HandleTrigger(TriggerWrapper wrapper, LineData lineData, long start
if (ProcessDisplayText(wrapper.ModifiedWarningDisplay, lineData.Action, matches, null) is { } updatedDisplayText)
{
_addTextEvent(updatedDisplayText, trigger);
_addTextEvent(updatedDisplayText, trigger, _fontColor);
}
AddEntry(lineData, wrapper, "Timer Warning");
Expand All @@ -499,8 +503,8 @@ private void HandleTrigger(TriggerWrapper wrapper, LineData lineData, long start
newTimerData.TriggerAgainOption = trigger.TriggerAgainOption;
newTimerData.TimerType = trigger.TimerType;
newTimerData.OriginalMatches = matches;
newTimerData.ActiveColor = trigger.ActiveColor;
newTimerData.FontColor = trigger.FontColor;
newTimerData.ActiveColor = _activeColor ?? trigger.ActiveColor;
newTimerData.FontColor = _fontColor ?? trigger.FontColor;
newTimerData.Key = wrapper.Id + "-" + displayName;
newTimerData.CancelSource = new CancellationTokenSource();
newTimerData.TimesToLoopCount = loopCount;
Expand Down Expand Up @@ -577,7 +581,7 @@ private void HandleTrigger(TriggerWrapper wrapper, LineData lineData, long start
if (ProcessDisplayText(wrapper.ModifiedEndDisplay, lineData.Action, matches, data2.OriginalMatches) is { } updatedDisplayText)
{
_addTextEvent(updatedDisplayText, trigger);
_addTextEvent(updatedDisplayText, trigger, _fontColor);
}
AddEntry(lineData, wrapper, "Timer End");
Expand Down
4 changes: 3 additions & 1 deletion EQLogParser/src/dao/DataModel.cs
Expand Up @@ -247,13 +247,15 @@ internal class TriggerCharacter
public bool IsEnabled { get; set; }
public string Voice { get; set; }
public int VoiceRate { get; set; }
public string ActiveColor { get; set; } = null;
public string FontColor { get; set; } = null;
}

internal class TriggerConfig
{
public string Id { get; set; }
public bool IsAdvanced { get; set; }
public List<TriggerCharacter> Characters { get; set; } = new();
public List<TriggerCharacter> Characters { get; set; } = [];
public bool IsEnabled { get; set; }
public string Voice { get; set; }
public int VoiceRate { get; set; }
Expand Down
8 changes: 6 additions & 2 deletions EQLogParser/src/dao/TriggerStateManager.cs
Expand Up @@ -172,7 +172,7 @@ internal void SaveLexicon(List<LexiconItem> list)
}
}

internal void AddCharacter(string name, string filePath, string voice, int voiceRate)
internal void AddCharacter(string name, string filePath, string voice, int voiceRate, string activeColor, string fontColor)
{
if (GetConfig() is { } config)
{
Expand All @@ -182,6 +182,8 @@ internal void AddCharacter(string name, string filePath, string voice, int voice
FilePath = filePath,
Voice = voice,
VoiceRate = voiceRate,
ActiveColor = activeColor,
FontColor = fontColor,
Id = Guid.NewGuid().ToString()
};

Expand Down Expand Up @@ -230,14 +232,16 @@ internal void UpdateCharacter(TriggerCharacter update)
}
}

internal void UpdateCharacter(string id, string name, string filePath, string voice, int voiceRate)
internal void UpdateCharacter(string id, string name, string filePath, string voice, int voiceRate, string activeColor, string fontColor)
{
if (GetConfig() is { } config && config.Characters.FirstOrDefault(character => character.Id == id) is { } existing)
{
existing.Name = name;
existing.FilePath = filePath;
existing.Voice = voice;
existing.VoiceRate = voiceRate;
existing.ActiveColor = activeColor;
existing.FontColor = fontColor;
UpdateConfig(config);
}
}
Expand Down
4 changes: 2 additions & 2 deletions EQLogParser/src/ui/common/TimerBar.xaml.cs
Expand Up @@ -72,7 +72,7 @@ internal void Update(string displayName, string timeText, double remaining, Time
{
if (timerData?.FontColor != null)
{
var brush = TriggerUtil.GetBrush(timerData.FontColor);
var brush = UiUtil.GetBrush(timerData.FontColor);
time.Foreground = brush;
title.Foreground = brush;
}
Expand Down Expand Up @@ -130,7 +130,7 @@ internal void SetActive(TimerData timerData)
{
if (timerData?.ActiveColor != null)
{
if (TriggerUtil.GetBrush(timerData.ActiveColor) is var color && progress.ProgressColor != color)
if (UiUtil.GetBrush(timerData.ActiveColor) is var color && progress.ProgressColor != color)
{
progress.ProgressColor = color;
_theState = State.None;
Expand Down

0 comments on commit adf1f80

Please sign in to comment.