From cceffd09c47d379687f524478b9ff32517f7a2c5 Mon Sep 17 00:00:00 2001 From: rjindael Date: Sat, 29 Jul 2023 15:31:26 -0700 Subject: [PATCH] feat: connect to kiseki --- Kiseki.Launcher/Controller.cs | 15 ++++++++++++--- Kiseki.Launcher/Models/Health.cs | 7 +++++++ Kiseki.Launcher/Models/HealthCheck.cs | 7 ------- 3 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 Kiseki.Launcher/Models/Health.cs delete mode 100644 Kiseki.Launcher/Models/HealthCheck.cs diff --git a/Kiseki.Launcher/Controller.cs b/Kiseki.Launcher/Controller.cs index c35f079..1615a7d 100644 --- a/Kiseki.Launcher/Controller.cs +++ b/Kiseki.Launcher/Controller.cs @@ -1,3 +1,5 @@ +using Kiseki.Launcher.Helpers; + namespace Kiseki.Launcher { public enum ProgressBarState @@ -9,7 +11,7 @@ namespace Kiseki.Launcher public class Controller { private readonly string BaseURL; - private IDictionary Arguments = new Dictionary(); + private readonly Dictionary Arguments = new(); public event EventHandler? OnPageHeadingChanged; public event EventHandler? OnProgressBarChanged; @@ -25,14 +27,14 @@ namespace Kiseki.Launcher if (args.Length > 0) { // TODO: handle these more gracefully - if (!Helpers.Base64.IsBase64String(args[0])) { Environment.Exit(0); } + // TODO: the payload will soon include more members, such as whether to open the IDE or not (as well as values required for our weird loopback authentication thing) string payload = Helpers.Base64.ConvertBase64ToString(args[0]); - if (payload.Split("|").Length != 2) // joinscripturl, ticket; TODO: this will also include launchmode (ide/play) & other stuff + if (payload.Split("|").Length != 2) { Environment.Exit(0); } @@ -46,6 +48,13 @@ namespace Kiseki.Launcher { PageHeadingChange("Connecting to Kiseki..."); + var response = await Http.GetJson($"https://{BaseURL}/api/health"); + if (response is null) + { + PageHeadingChange("Failed to connect"); + return; + } + bool marquee = true; await foreach (int progressValue in StreamBackgroundOperationProgressAsync()) { diff --git a/Kiseki.Launcher/Models/Health.cs b/Kiseki.Launcher/Models/Health.cs new file mode 100644 index 0000000..e33eee3 --- /dev/null +++ b/Kiseki.Launcher/Models/Health.cs @@ -0,0 +1,7 @@ +namespace Kiseki.Launcher.Models +{ + public class Health + { + public string Response { get; set; } = ""; + } +} \ No newline at end of file diff --git a/Kiseki.Launcher/Models/HealthCheck.cs b/Kiseki.Launcher/Models/HealthCheck.cs deleted file mode 100644 index 6abf719..0000000 --- a/Kiseki.Launcher/Models/HealthCheck.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Kiseki.Launcher.Models -{ - public class HealthCheck - { - public string Response { get; set; } - } -} \ No newline at end of file