clean up code

This commit is contained in:
1415ddfer 2024-07-13 15:32:39 +08:00
parent 05e0baac8f
commit b2fdb364bf

View File

@ -4,23 +4,23 @@ using System.Net;
using System.Text;
namespace Zerolauncher.Manager
{
internal class WebApiManager
internal static class WebApiManager
{
static HttpListener listener = new HttpListener();
static CancellationTokenSource cts = new CancellationTokenSource();
static readonly HttpListener Listener = new HttpListener();
static readonly CancellationTokenSource Cts = new CancellationTokenSource();
public static async Task StartListener()
{
listener.Prefixes.Add("http://127.0.0.1:7233/");
listener.Start();
Listener.Prefixes.Add("http://127.0.0.1:7233/");
Listener.Start();
Trace.WriteLine("Listening...");
while (!cts.Token.IsCancellationRequested)
while (!Cts.Token.IsCancellationRequested)
{
HttpListenerContext context = await listener.GetContextAsync();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
var context = await Listener.GetContextAsync();
var request = context.Request;
var response = context.Response;
var raw = request.RawUrl;
ResponesBody? rb = null;
ResponseBody? rb = null;
if (raw != null && raw.Contains("?"))
{
var lines = raw.Split("?");
@ -34,121 +34,79 @@ namespace Zerolauncher.Manager
switch (lines[0])
{
case "/CloseGame":
{
if (EngineManager.ExitGame(acc))
{
rb = new ResponesBody(1, 0, $"Account [{nick}] successful to close.");
}
else
{
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
{
rb = EngineManager.ExitGame(acc) ? new ResponseBody(1, 0, $"Account [{nick}] successful to close.") : new ResponseBody($"Account [{nick}] is unluacher.");
}
break;
case "/ToNormalSize":
{
rb = EngineManager.TurnGameSizeNormal(acc) switch
{
switch (EngineManager.TurnGameSizeNormal(acc))
{
case 2:
rb = new ResponesBody(1, 0, $"Account [{nick}] now is normal size.");
break;
case 1:
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
break;
case 0:
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
2 => new ResponseBody(1, 0, $"Account [{nick}] now is normal size."),
1 => new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait."),
0 => new ResponseBody($"Account [{nick}] is unluacher."),
_ => rb
};
}
break;
case "/ToMiniSize":
{
rb = EngineManager.TurnGameSizeMini(acc) switch
{
switch (EngineManager.TurnGameSizeMini(acc))
{
case 2:
rb = new ResponesBody(1, 0, $"Account [{nick}] now is mini size.");
break;
case 1:
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
break;
case 0:
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
2 => new ResponseBody(1, 0, $"Account [{nick}] now is mini size."),
1 => new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait."),
0 => new ResponseBody($"Account [{nick}] is unluacher."),
_ => rb
};
}
break;
case "/LoginGame":
{
if (EngineManager.CreateGame(acc))
{
rb = new ResponesBody(0, 0, $"Account [{nick}] successful to start.");
rb = new ResponseBody(0, 0, $"Account [{nick}] successful to start.");
}
else
{
int hwnd = EngineManager.CheckGameState(acc);
if (hwnd <= 0)
{
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
}
else
{
rb = new ResponesBody(1, hwnd, $"Account [{nick}] now is running.");
}
var hwnd = EngineManager.CheckGameState(acc);
rb = hwnd <= 0 ? new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait.") : new ResponseBody(1, hwnd, $"Account [{nick}] now is running.");
}
}
break;
default:
rb = new ResponesBody($"commad [{lines[0]}] undefind.");
rb = new ResponseBody($"commad [{lines[0]}] undefind.");
break;
}
}
else
{
rb = new ResponesBody($"Account [{nick}] undefind.");
rb = new ResponseBody($"Account [{nick}] undefind.");
}
}
else
{
rb = new ResponesBody("args is missing.");
rb = new ResponseBody("args is missing.");
}
}
if (rb == null)
{
rb = new ResponesBody();
}
byte[] buffer = Encoding.UTF8.GetBytes(rb.Encode());
rb ??= new ResponseBody();
var buffer = Encoding.UTF8.GetBytes(rb.Encode());
response.ContentLength64 = buffer.Length;
Stream output = response.OutputStream;
var output = response.OutputStream;
await output.WriteAsync(buffer, 0, buffer.Length);
output.Close();
}
listener.Stop();
Listener.Stop();
}
public static void StopListener() { cts.Cancel(); }
public static void StopListener() { Cts.Cancel(); }
}
class ResponesBody
class ResponseBody(int status = -1, int hwnd = 0, string message = "Hello, World!")
{
public int status;
public int hwnd;
public string message;
public ResponesBody(string message)
public ResponseBody(string message) : this(-1, 0, message)
{
this.status = -1;
this.hwnd = 0;
this.message = message;
}
public ResponesBody(int status=-1, int hwnd=0, string message= "Hello, World!")
{
this.status = status;
this.hwnd = hwnd;
this.message = message;
}
public string Encode()