diff --git a/.github/workflows/githubactionsbuilds.yml b/.github/workflows/githubactionsbuilds.yml index fb02ac6..77328dc 100644 --- a/.github/workflows/githubactionsbuilds.yml +++ b/.github/workflows/githubactionsbuilds.yml @@ -28,7 +28,6 @@ jobs: steps: - uses: actions/checkout@v4 - name: Login to Docker Hub - if: github.ref == 'refs/heads/master' uses: docker/login-action@v3 with: username: devedse diff --git a/DeveLanCacheUI_Frontend/ApiModels/DownloadEvent.cs b/DeveLanCacheUI_Frontend/ApiModels/DownloadEvent.cs index 05bf781..63bb969 100644 --- a/DeveLanCacheUI_Frontend/ApiModels/DownloadEvent.cs +++ b/DeveLanCacheUI_Frontend/ApiModels/DownloadEvent.cs @@ -5,9 +5,9 @@ public class DownloadEvent public int Id { get; set; } //steam/epicgames/wsus/epicgames - public string CacheIdentifier { get; set; } + public required string CacheIdentifier { get; set; } - public int? DownloadIdentifier { get; set; } + public uint? DownloadIdentifier { get; set; } public string? DownloadIdentifierString { get; set; } public required string ClientIp { get; set; } @@ -18,9 +18,9 @@ public class DownloadEvent public long CacheHitBytes { get; set; } public long CacheMissBytes { get; set; } - public ulong TotalBytes { get; set; } + //public ulong TotalBytes { get; set; } - public SteamDepot? SteamDepot { get; set; } + public DownloadInfo? DownloadInfo { get; set; } } } diff --git a/DeveLanCacheUI_Frontend/ApiModels/DownloadInfo.cs b/DeveLanCacheUI_Frontend/ApiModels/DownloadInfo.cs new file mode 100644 index 0000000..b529b32 --- /dev/null +++ b/DeveLanCacheUI_Frontend/ApiModels/DownloadInfo.cs @@ -0,0 +1,17 @@ +namespace DeveLanCacheUI_Frontend.ApiModels +{ + public class DownloadInfo + { + public string? Name { get; set; } + + public string? AppUrl { get; set; } + public string? AppImageUrl { get; set; } + + //E.g. the DepotId + public string? DownloadIdentifier { get; set; } + public string? DownloadIdentifierUrl { get; set; } + public string? DownloadIdentifierImageUrl { get; set; } + + public ulong? TotalBytes { get; set; } + } +} diff --git a/DeveLanCacheUI_Frontend/ApiModels/SteamDepot.cs b/DeveLanCacheUI_Frontend/ApiModels/SteamDepot.cs deleted file mode 100644 index 5530cc4..0000000 --- a/DeveLanCacheUI_Frontend/ApiModels/SteamDepot.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace DeveLanCacheUI_Frontend.ApiModels -{ - public class SteamDepot - { - public int Id { get; set; } - - public App? SteamApp { get; set; } - public int? SteamAppId { get; set; } - } -} diff --git a/DeveLanCacheUI_Frontend/Client/Program.cs b/DeveLanCacheUI_Frontend/Client/Program.cs index 7a92f81..57646d9 100644 --- a/DeveLanCacheUI_Frontend/Client/Program.cs +++ b/DeveLanCacheUI_Frontend/Client/Program.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -namespace DeveLanCacheUI_Frontend +namespace DeveLanCacheUI_Frontend.Client { public class Program { diff --git a/DeveLanCacheUI_Frontend/Pages/LatestDownload.razor b/DeveLanCacheUI_Frontend/Pages/LatestDownload.razor index a8cad8c..0332486 100644 --- a/DeveLanCacheUI_Frontend/Pages/LatestDownload.razor +++ b/DeveLanCacheUI_Frontend/Pages/LatestDownload.razor @@ -36,6 +36,7 @@ Client Cache Hit Cache Miss + Progress @@ -43,16 +44,17 @@ { double cacheHitPercent = 0.0; double cacheMissPercent = 0.0; + double totalPercent = 0.0; if ((downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes) != 0) { cacheHitPercent = Math.Round(((double)downloadEvent.CacheHitBytes / (downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes)) * 100, 2); cacheMissPercent = Math.Round(((double)downloadEvent.CacheMissBytes / (downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes)) * 100, 2); + var totalBytes = downloadEvent.DownloadInfo?.TotalBytes; + if (totalBytes is not null and not 0) + { + totalPercent = Math.Round(((double)(downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes) / totalBytes.Value) * 100, 2); + } } - var appId = downloadEvent.SteamDepot?.SteamAppId ?? 0; - var downloadIdentifierString = downloadEvent.DownloadIdentifierString; - var appHref = appId != 0 ? $"https://steamdb.info/app/{appId}/" : ""; - var depotHref = downloadIdentifierString != null && downloadEvent.CacheIdentifier == "steam" ? $"https://steamdb.info/depot/{downloadIdentifierString}/" : null; - var imgUrl = appId != 0 ? $"https://cdn.cloudflare.steamstatic.com/steam/apps/{appId}/header.jpg" : ""; @downloadEvent.CacheIdentifier @@ -61,29 +63,28 @@ @downloadEvent.CreatedAt - @downloadEvent.LastUpdatedAt - @if (appId != 0) + @if (downloadEvent.DownloadInfo != null) { - - - @*@(downloadEvent.SteamDepot?.SteamApp?.AppName ?? "unknown")*@ + + @if (downloadEvent.DownloadInfo?.AppImageUrl != null) + { + + } +

@(downloadEvent.DownloadInfo?.Name ?? "unknown")

} - else - { - @(downloadEvent.SteamDepot?.SteamApp?.name ?? "unknown") - } - @if (depotHref != null) + @if (downloadEvent.DownloadInfo != null) { - - @downloadEvent.DownloadIdentifierString + + @if (downloadEvent.DownloadInfo?.DownloadIdentifierImageUrl != null) + { + + } +

@(downloadEvent.DownloadInfo?.DownloadIdentifier ?? "unknown")

} - else - { - @downloadEvent.DownloadIdentifierString - } @if (backendBaseUrl != null && _localStorage.GetItem(LocalStorageField.HashImagesEnabled)) @@ -110,6 +111,22 @@ @($"{DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString(downloadEvent.CacheMissBytes)} ({cacheMissPercent}%)") } + + @if (downloadEvent.DownloadInfo?.TotalBytes is not null and not 0) + { + + + var totalBytesString = DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString((long)downloadEvent.DownloadInfo?.TotalBytes!); + var downloadedBytesString = DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString(downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes); + var progressString = totalPercent < 100 ? $"{downloadedBytesString}/{totalBytesString} ({totalPercent}%)" : $"{downloadedBytesString} (100%)"; + + @progressString + } + else + { + Could not find Manifest + } + } diff --git a/DeveLanCacheUI_Frontend/Pages/SteamLatestDownloads.razor b/DeveLanCacheUI_Frontend/Pages/SteamLatestDownloads.razor index e46da3f..e2e3385 100644 --- a/DeveLanCacheUI_Frontend/Pages/SteamLatestDownloads.razor +++ b/DeveLanCacheUI_Frontend/Pages/SteamLatestDownloads.razor @@ -14,7 +14,7 @@

Steam Latest Downloads + title="@(hubConnection?.State == HubConnectionState.Connected ? "Connected" : "Disconnected")"> @if (loading) { @@ -48,44 +48,39 @@ { cacheHitPercent = Math.Round(((double)downloadEvent.CacheHitBytes / (downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes)) * 100, 2); cacheMissPercent = Math.Round(((double)downloadEvent.CacheMissBytes / (downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes)) * 100, 2); - if (downloadEvent.TotalBytes != 0) + var totalBytes = downloadEvent.DownloadInfo?.TotalBytes; + if (totalBytes is not null and not 0) { - totalPercent = Math.Round(((double)(downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes) / (double)downloadEvent.TotalBytes) * 100, 2); + totalPercent = Math.Round(((double)(downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes) / totalBytes.Value) * 100, 2); } } - var appId = downloadEvent.SteamDepot?.SteamAppId ?? 0; - var downloadIdentifierString = downloadEvent.DownloadIdentifierString; - var appHref = appId != 0 ? $"https://steamdb.info/app/{appId}/" : ""; - var depotHref = downloadIdentifierString != null && downloadEvent.CacheIdentifier == "steam" ? $"https://steamdb.info/depot/{downloadIdentifierString}/" : null; - var imgUrl = appId != 0 ? $"https://cdn.cloudflare.steamstatic.com/steam/apps/{appId}/header.jpg" : ""; @downloadEvent.CreatedAt - @downloadEvent.LastUpdatedAt - @if (appId != 0) + @if (downloadEvent.DownloadInfo != null) { - - - @*@(downloadEvent.SteamDepot?.SteamApp?.AppName ?? "unknown")*@ + + @if (downloadEvent.DownloadInfo?.AppImageUrl != null) + { + + } +

@(downloadEvent.DownloadInfo?.Name ?? "unknown")

} - else - { - @(downloadEvent.SteamDepot?.SteamApp?.name ?? "unknown") - } - @if (depotHref != null) + @if (downloadEvent.DownloadInfo != null) { - - @downloadEvent.DownloadIdentifierString + + @if (downloadEvent.DownloadInfo?.DownloadIdentifierImageUrl != null) + { + + } +

@(downloadEvent.DownloadInfo?.DownloadIdentifier ?? "unknown")

} - else - { - @downloadEvent.DownloadIdentifierString - } @if (backendBaseUrl != null && _localStorage.GetItem(LocalStorageField.HashImagesEnabled)) @@ -113,11 +108,11 @@ } - @if (downloadEvent.TotalBytes != 0) + @if (downloadEvent.DownloadInfo?.TotalBytes is not null and not 0) { - var totalBytesString = DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString((long)downloadEvent.TotalBytes); + var totalBytesString = DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString((long)downloadEvent.DownloadInfo?.TotalBytes!); var downloadedBytesString = DeveCoolLib.Conversion.ValuesToStringHelper.BytesToString(downloadEvent.CacheMissBytes + downloadEvent.CacheHitBytes); var progressString = totalPercent < 100 ? $"{downloadedBytesString}/{totalBytesString} ({totalPercent}%)" : $"{downloadedBytesString} (100%)"; @@ -125,7 +120,7 @@ } else { - Could not find Steam Manifest + Could not find Manifest }