diff --git a/ProjectLighthouse/Types/Categories/Category.cs b/ProjectLighthouse/Types/Categories/Category.cs index 8d9de280..10e4ef72 100644 --- a/ProjectLighthouse/Types/Categories/Category.cs +++ b/ProjectLighthouse/Types/Categories/Category.cs @@ -1,4 +1,5 @@ #nullable enable +using System.Collections.Generic; using System.Xml.Serialization; using LBPUnion.ProjectLighthouse.Serialization; using LBPUnion.ProjectLighthouse.Types.Levels; @@ -29,6 +30,8 @@ namespace LBPUnion.ProjectLighthouse.Types.Categories public abstract Slot? GetPreviewSlot(Database database); + public abstract int GetTotalSlots(Database database); + public string Serialize(Database database) { Slot? previewSlot = this.GetPreviewSlot(database); @@ -36,7 +39,20 @@ namespace LBPUnion.ProjectLighthouse.Types.Categories string previewResults = ""; if (previewSlot != null) { - previewResults = LbpSerializer.StringElement("results", LbpSerializer.StringElement("slots", previewSlot.Serialize())); + previewResults = LbpSerializer.TaggedStringElement + ( + "results", + previewSlot.Serialize(), + new Dictionary + { + { + "total", this.GetTotalSlots(database) + }, + { + "hint_start", "2" + }, + } + ); } return LbpSerializer.StringElement diff --git a/ProjectLighthouse/Types/Categories/NewestLevelsCategory.cs b/ProjectLighthouse/Types/Categories/NewestLevelsCategory.cs index a46ddb31..efd76b90 100644 --- a/ProjectLighthouse/Types/Categories/NewestLevelsCategory.cs +++ b/ProjectLighthouse/Types/Categories/NewestLevelsCategory.cs @@ -11,5 +11,6 @@ namespace LBPUnion.ProjectLighthouse.Types.Categories public override string IconHash { get; set; } = "g820623"; public override string Endpoint { get; set; } = "newest"; public override Slot? GetPreviewSlot(Database database) => database.Slots.OrderByDescending(s => s.FirstUploaded).FirstOrDefault(); + public override int GetTotalSlots(Database database) => database.Slots.Count(); } } \ No newline at end of file diff --git a/ProjectLighthouse/Types/Categories/QueueCategory.cs b/ProjectLighthouse/Types/Categories/QueueCategory.cs index 5629eb80..63de388a 100644 --- a/ProjectLighthouse/Types/Categories/QueueCategory.cs +++ b/ProjectLighthouse/Types/Categories/QueueCategory.cs @@ -25,8 +25,9 @@ namespace LBPUnion.ProjectLighthouse.Types.Categories } } - public override Slot? GetPreviewSlot - (Database database) + public override Slot? GetPreviewSlot(Database database) => database.QueuedLevels.Include(q => q.Slot).FirstOrDefault(q => q.UserId == this.user.UserId)?.Slot; + + public override int GetTotalSlots(Database database) => database.QueuedLevels.Count(q => q.UserId == this.user.UserId); } } \ No newline at end of file diff --git a/ProjectLighthouse/Types/Categories/TeamPicksCategory.cs b/ProjectLighthouse/Types/Categories/TeamPicksCategory.cs index 58a3441b..44bd36af 100644 --- a/ProjectLighthouse/Types/Categories/TeamPicksCategory.cs +++ b/ProjectLighthouse/Types/Categories/TeamPicksCategory.cs @@ -11,5 +11,6 @@ namespace LBPUnion.ProjectLighthouse.Types.Categories public override string IconHash { get; set; } = "g820626"; public override string Endpoint { get; set; } = "team_picks"; public override Slot? GetPreviewSlot(Database database) => database.Slots.OrderByDescending(s => s.FirstUploaded).FirstOrDefault(s => s.TeamPick); + public override int GetTotalSlots(Database database) => database.Slots.Count(s => s.TeamPick); } } \ No newline at end of file