From 4bef9a20dd473c94ef8a9bf86dd608ddcb13956c Mon Sep 17 00:00:00 2001 From: estrogen elf <87099578+BlossomiShymae@users.noreply.github.com> Date: Sat, 31 May 2025 21:28:11 -0500 Subject: [PATCH] refactor: change dependency from GrrrLCU to Briar --- Needlework.Net/Needlework.Net.csproj | 4 ++-- Needlework.Net/Program.cs | 10 ---------- .../ViewModels/MainWindow/MainWindowViewModel.cs | 3 ++- Needlework.Net/ViewModels/Pages/ConsoleViewModel.cs | 5 ++--- .../ViewModels/Pages/Endpoints/EndpointViewModel.cs | 4 ++-- .../Pages/Endpoints/EndpointsNavigationViewModel.cs | 4 ++-- .../Pages/Endpoints/EndpointsTabViewModel.cs | 7 ++----- .../Pages/Endpoints/EndpointsViewModel.cs | 7 ++----- .../Pages/Endpoints/PathOperationViewModel.cs | 4 ++-- .../ViewModels/Pages/Endpoints/ResponseViewModel.cs | 2 +- .../ViewModels/Pages/Websocket/EventViewModel.cs | 2 +- .../Pages/Websocket/WebsocketViewModel.cs | 3 ++- .../ViewModels/Shared/RequestViewModel.cs | 13 ++++++------- 13 files changed, 26 insertions(+), 42 deletions(-) diff --git a/Needlework.Net/Needlework.Net.csproj b/Needlework.Net/Needlework.Net.csproj index 9a20a51..ac5d107 100644 --- a/Needlework.Net/Needlework.Net.csproj +++ b/Needlework.Net/Needlework.Net.csproj @@ -1,7 +1,7 @@  WinExe - net8.0-windows + net8.0 enable true app.manifest @@ -27,7 +27,7 @@ - + diff --git a/Needlework.Net/Program.cs b/Needlework.Net/Program.cs index 5db4390..d92492e 100644 --- a/Needlework.Net/Program.cs +++ b/Needlework.Net/Program.cs @@ -4,11 +4,9 @@ using Needlework.Net.Extensions; using Needlework.Net.Services; using Needlework.Net.ViewModels.MainWindow; using Needlework.Net.ViewModels.Pages; -using Needlework.Net.ViewModels.Pages.Endpoints; using Projektanker.Icons.Avalonia; using Projektanker.Icons.Avalonia.FontAwesome; using System; -using System.Net.Http; using System.Threading.Tasks; namespace Needlework.Net; @@ -60,14 +58,6 @@ class Program builder.AddSingleton(); builder.AddSingletonsFromAssemblies(); builder.AddHttpClient(); - builder.AddHttpClient(nameof(EndpointsTabViewModel)).ConfigurePrimaryHttpMessageHandler(() => // Insecure SSL for Game Client API - { - var handler = new HttpClientHandler - { - ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator - }; - return handler; - }); builder.AddLogging(Logger.Setup); var services = builder.BuildServiceProvider(); diff --git a/Needlework.Net/ViewModels/MainWindow/MainWindowViewModel.cs b/Needlework.Net/ViewModels/MainWindow/MainWindowViewModel.cs index 51e775b..e1e84bd 100644 --- a/Needlework.Net/ViewModels/MainWindow/MainWindowViewModel.cs +++ b/Needlework.Net/ViewModels/MainWindow/MainWindowViewModel.cs @@ -1,5 +1,6 @@ using Avalonia.Collections; -using BlossomiShymae.GrrrLCU; +using BlossomiShymae.Briar; +using BlossomiShymae.Briar.Utils; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; diff --git a/Needlework.Net/ViewModels/Pages/ConsoleViewModel.cs b/Needlework.Net/ViewModels/Pages/ConsoleViewModel.cs index c26aadb..18efa6b 100644 --- a/Needlework.Net/ViewModels/Pages/ConsoleViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/ConsoleViewModel.cs @@ -4,7 +4,6 @@ using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.Logging; using Needlework.Net.ViewModels.Shared; -using System.Net.Http; using System.Threading.Tasks; namespace Needlework.Net.ViewModels.Pages; @@ -19,9 +18,9 @@ public partial class ConsoleViewModel : PageBase private readonly DataSource _dataSource; - public ConsoleViewModel(ILogger requestViewModelLogger, DataSource dataSource, HttpClient httpClient) : base("Console", "terminal", -200) + public ConsoleViewModel(ILogger requestViewModelLogger, DataSource dataSource) : base("Console", "terminal", -200) { - _request = new(requestViewModelLogger, Endpoints.Tab.LCU, httpClient); + _request = new(requestViewModelLogger, Endpoints.Tab.LCU); _dataSource = dataSource; } diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointViewModel.cs index bb8d121..c641347 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointViewModel.cs @@ -21,10 +21,10 @@ public partial class EndpointViewModel : ObservableObject public event EventHandler? PathOperationSelected; - public EndpointViewModel(string endpoint, ILogger requestViewModelLogger, Models.Document document, Tab tab, System.Net.Http.HttpClient httpClient) + public EndpointViewModel(string endpoint, ILogger requestViewModelLogger, Models.Document document, Tab tab) { Endpoint = endpoint; - PathOperations = new AvaloniaList(document.Plugins[endpoint].Select(x => new PathOperationViewModel(x, requestViewModelLogger, document, tab, httpClient))); + PathOperations = new AvaloniaList(document.Plugins[endpoint].Select(x => new PathOperationViewModel(x, requestViewModelLogger, document, tab))); FilteredPathOperations = new AvaloniaList(PathOperations); } diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsNavigationViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsNavigationViewModel.cs index 6f897ac..e1b326d 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsNavigationViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsNavigationViewModel.cs @@ -18,9 +18,9 @@ public partial class EndpointsNavigationViewModel : ObservableObject private readonly Action _onEndpointNavigation; private readonly Tab _tab; - public EndpointsNavigationViewModel(IAvaloniaList plugins, Action onEndpointNavigation, ILogger requestViewModelLogger, Models.Document document, Tab tab, System.Net.Http.HttpClient httpClient) + public EndpointsNavigationViewModel(IAvaloniaList plugins, Action onEndpointNavigation, ILogger requestViewModelLogger, Models.Document document, Tab tab) { - _activeViewModel = _endpointsViewModel = new EndpointsViewModel(plugins, OnClicked, requestViewModelLogger, document, tab, httpClient); + _activeViewModel = _endpointsViewModel = new EndpointsViewModel(plugins, OnClicked, requestViewModelLogger, document, tab); _onEndpointNavigation = onEndpointNavigation; _tab = tab; _title = GetTitle(tab); diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsTabViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsTabViewModel.cs index b22df5b..79093f7 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsTabViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsTabViewModel.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.Logging; using Needlework.Net.Models; using Needlework.Net.ViewModels.Shared; using System; -using System.Net.Http; using System.Threading.Tasks; namespace Needlework.Net.ViewModels.Pages.Endpoints; @@ -27,13 +26,11 @@ public partial class EndpointsTabViewModel : PageBase private readonly ILogger _requestViewModelLogger; private readonly DataSource _dataSource; - private readonly HttpClient _httpClient; - public EndpointsTabViewModel(ILogger requestViewModelLogger, DataSource dataSource, IHttpClientFactory httpClientFactory) : base("Endpoints", "list-alt", -500) + public EndpointsTabViewModel(ILogger requestViewModelLogger, DataSource dataSource) : base("Endpoints", "list-alt", -500) { _requestViewModelLogger = requestViewModelLogger; _dataSource = dataSource; - _httpClient = httpClientFactory.CreateClient(nameof(EndpointsTabViewModel)); } public override async Task InitializeAsync() { @@ -55,7 +52,7 @@ public partial class EndpointsTabViewModel : PageBase Plugins.Clear(); Plugins.AddRange(document.Plugins.Keys); - var vm = new EndpointsNavigationViewModel(Plugins, OnEndpointNavigation, _requestViewModelLogger, document, tab, _httpClient); + var vm = new EndpointsNavigationViewModel(Plugins, OnEndpointNavigation, _requestViewModelLogger, document, tab); Endpoints.Add(new() { Content = vm, diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsViewModel.cs index 4798ff0..8a921b1 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/EndpointsViewModel.cs @@ -6,7 +6,6 @@ using Needlework.Net.Models; using Needlework.Net.ViewModels.Shared; using System; using System.Linq; -using System.Net.Http; namespace Needlework.Net.ViewModels.Pages.Endpoints; @@ -23,9 +22,8 @@ public partial class EndpointsViewModel : ObservableObject private readonly ILogger _requestViewModelLogger; private readonly Document _document; private readonly Tab _tab; - private readonly HttpClient _httpClient; - public EndpointsViewModel(IAvaloniaList plugins, Action onClicked, ILogger requestViewModelLogger, Models.Document document, Tab tab, System.Net.Http.HttpClient httpClient) + public EndpointsViewModel(IAvaloniaList plugins, Action onClicked, ILogger requestViewModelLogger, Models.Document document, Tab tab) { Plugins = new AvaloniaList(plugins); Query = new AvaloniaList(plugins); @@ -33,7 +31,6 @@ public partial class EndpointsViewModel : ObservableObject _requestViewModelLogger = requestViewModelLogger; _document = document; _tab = tab; - _httpClient = httpClient; } partial void OnSearchChanged(string value) @@ -50,6 +47,6 @@ public partial class EndpointsViewModel : ObservableObject { if (string.IsNullOrEmpty(value)) return; - OnClicked.Invoke(new EndpointViewModel(value, _requestViewModelLogger, _document, _tab, _httpClient)); + OnClicked.Invoke(new EndpointViewModel(value, _requestViewModelLogger, _document, _tab)); } } diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/PathOperationViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/PathOperationViewModel.cs index 0c506fe..d7acaff 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/PathOperationViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/PathOperationViewModel.cs @@ -20,11 +20,11 @@ public partial class PathOperationViewModel : ObservableObject [ObservableProperty] private bool _isBusy; [ObservableProperty] private Lazy _request; - public PathOperationViewModel(PathOperation pathOperation, ILogger requestViewModelLogger, Document document, Tab tab, System.Net.Http.HttpClient httpClient) + public PathOperationViewModel(PathOperation pathOperation, ILogger requestViewModelLogger, Document document, Tab tab) { Path = pathOperation.Path; Operation = new OperationViewModel(pathOperation.Operation, document); - Request = new(() => new RequestViewModel(requestViewModelLogger, tab, httpClient) + Request = new(() => new RequestViewModel(requestViewModelLogger, tab) { Method = pathOperation.Method.ToUpper() }); diff --git a/Needlework.Net/ViewModels/Pages/Endpoints/ResponseViewModel.cs b/Needlework.Net/ViewModels/Pages/Endpoints/ResponseViewModel.cs index ebc6fde..56b5ad2 100644 --- a/Needlework.Net/ViewModels/Pages/Endpoints/ResponseViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Endpoints/ResponseViewModel.cs @@ -1,4 +1,4 @@ -using BlossomiShymae.GrrrLCU; +using BlossomiShymae.Briar.Utils; using CommunityToolkit.Mvvm.ComponentModel; namespace Needlework.Net.ViewModels.Pages.Endpoints; diff --git a/Needlework.Net/ViewModels/Pages/Websocket/EventViewModel.cs b/Needlework.Net/ViewModels/Pages/Websocket/EventViewModel.cs index 47d2503..bd94649 100644 --- a/Needlework.Net/ViewModels/Pages/Websocket/EventViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Websocket/EventViewModel.cs @@ -1,4 +1,4 @@ -using BlossomiShymae.GrrrLCU; +using BlossomiShymae.Briar.WebSocket.Events; using CommunityToolkit.Mvvm.ComponentModel; using System; diff --git a/Needlework.Net/ViewModels/Pages/Websocket/WebsocketViewModel.cs b/Needlework.Net/ViewModels/Pages/Websocket/WebsocketViewModel.cs index d54ad88..982d7e9 100644 --- a/Needlework.Net/ViewModels/Pages/Websocket/WebsocketViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Websocket/WebsocketViewModel.cs @@ -1,5 +1,6 @@ using Avalonia.Collections; -using BlossomiShymae.GrrrLCU; +using BlossomiShymae.Briar; +using BlossomiShymae.Briar.WebSocket.Events; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; diff --git a/Needlework.Net/ViewModels/Shared/RequestViewModel.cs b/Needlework.Net/ViewModels/Shared/RequestViewModel.cs index e78bca8..75e4a2a 100644 --- a/Needlework.Net/ViewModels/Shared/RequestViewModel.cs +++ b/Needlework.Net/ViewModels/Shared/RequestViewModel.cs @@ -1,5 +1,6 @@ using Avalonia.Media; -using BlossomiShymae.GrrrLCU; +using BlossomiShymae.Briar; +using BlossomiShymae.Briar.Utils; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Messaging; using Microsoft.Extensions.Logging; @@ -35,13 +36,11 @@ public partial class RequestViewModel : ObservableObject private readonly ILogger _logger; private readonly Tab _tab; - private readonly HttpClient _httpClient; - public RequestViewModel(ILogger logger, Pages.Endpoints.Tab tab, HttpClient httpClient) + public RequestViewModel(ILogger logger, Pages.Endpoints.Tab tab) { _logger = logger; _tab = tab; - _httpClient = httpClient; } partial void OnMethodChanged(string? oldValue, string? newValue) @@ -78,8 +77,8 @@ public partial class RequestViewModel : ObservableObject _logger.LogDebug("Sending request: {Tuple}", (Method, RequestPath)); RequestText?.Invoke(this, this); var content = new StringContent(RequestBody ?? string.Empty, new System.Net.Http.Headers.MediaTypeHeaderValue("application/json")); - var responsePath = $"https://127.0.0.1:2999{RequestPath}"; - var response = await _httpClient.SendAsync(new HttpRequestMessage(method, responsePath) { Content = content }); + var client = Connector.GetGameHttpClientInstance(); + var response = await client.SendAsync(new HttpRequestMessage(method, RequestPath) { Content = content }); var responseBody = await response.Content.ReadAsByteArrayAsync(); var body = responseBody.Length > 0 ? JsonSerializer.Serialize(JsonSerializer.Deserialize(responseBody), App.JsonSerializerOptions) : string.Empty; @@ -95,7 +94,7 @@ public partial class RequestViewModel : ObservableObject } ResponseStatus = $"{(int)response.StatusCode} {response.StatusCode.ToString()}"; - ResponsePath = responsePath; + ResponsePath = $"https://127.0.0.1:2999{RequestPath}"; } catch (Exception ex)