Auto-Update wie beim MSCO Launcher

Beim Start installiert sich ein neuer Launcher sofort selbst (Fortschrittsfenster, Neustart), neue
BSO-Versionen kommen nach dem Anmelden - beides abschaltbar. Einstellungen: Nach Updates suchen /
Installieren und neu starten. Updates wieder nur von der Website; dotnet publish laedt hoch (release.ps1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 21:19:48 +01:00
co-authored by Claude Opus 5.5
parent 9cd5f2b153
commit c7a30e7fa3
11 changed files with 284 additions and 225 deletions
+2 -10
View File
@@ -75,16 +75,8 @@ public static class Api
// --- Freunde und Lobby (alles mit dem Konto-Token)
public static Task<Result> Get(string path, string token) => Send(HttpMethod.Get, path, null, token);
public static Task<Result> Post(string path, string token, object? body = null) => Send(HttpMethod.Post, path, body ?? new { }, token);
/// <summary>Gegen eine Test-Website (-dev, BSO_LAUNCHER_API)? Dann kommen Releases zuerst von dort.</summary>
public static bool TestWebsite => Base != BaseUrl.TrimEnd('/');
/// <summary>Neueste Version: vom Git-Server (Gitea-Releases), sonst von der Website - mit -dev umgekehrt.</summary>
public static async Task<Release?> Latest(string product) =>
TestWebsite
? await WebsiteLatest(product) ?? await GiteaReleases.Latest(product)
: await GiteaReleases.Latest(product) ?? await WebsiteLatest(product);
static async Task<Release?> WebsiteLatest(string product)
/// <summary>Neueste Version von mod/launcher auf der Website (wie beim MSCO Keymaster) - oder null.</summary>
public static async Task<Release?> Latest(string product)
{
var r = await Send(HttpMethod.Get, "/api/releases/latest?product=" + product, null, null);
if (!r.Ok) return null;