Use QueryParser for redirect and expose method for new clients

This commit is contained in:
Infi
2024-08-28 12:42:01 +02:00
parent 2d7d1c9615
commit 7b96b52217
4 changed files with 23 additions and 23 deletions
+12 -1
View File
@@ -16,7 +16,7 @@ public class Processing
Plugin = plugin;
}
public string ReadChannelName(Chunk[] channelName)
internal string ReadChannelName(Chunk[] channelName)
{
return string.Join("", channelName.Select(chunk => ProcessChunk(chunk, noColor: true)));
}
@@ -44,6 +44,17 @@ public class Processing
return response;
}
internal async Task PrepareNewClient(SSEConnection sse)
{
var messages = await WebserverUtil.FrameworkWrapper(ReadMessageList);
var channels = await Plugin.Framework.RunOnTick(Plugin.ChatLogWindow.GetAvailableChannels);
var channelName = await Plugin.Framework.RunOnTick(() => ReadChannelName(Plugin.ChatLogWindow.PreviousChannel));
sse.OutboundQueue.Enqueue(new NewMessageEvent(new Messages(messages)));
sse.OutboundQueue.Enqueue(new SwitchChannelEvent(new SwitchChannel(channelName)));
sse.OutboundQueue.Enqueue(new ChannelListEvent(new ChannelList(channels.ToDictionary(pair => pair.Key, pair => (uint)pair.Value))));
}
private string ProcessChunk(Chunk chunk, bool noColor = false)
{
if (chunk is IconChunk { } icon)