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
}
|