mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-03 10:38:40 +00:00
Filter slots to only contain vita slots on vita
This commit is contained in:
parent
a4ecf8628b
commit
2b63952f94
3 changed files with 23 additions and 27 deletions
|
@ -24,6 +24,18 @@ public class SlotsController : ControllerBase
|
||||||
this.database = database;
|
this.database = database;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IQueryable<Slot> getSlots(GameVersion gameVersion)
|
||||||
|
{
|
||||||
|
IQueryable<Slot> query = this.database.Slots.Include(s => s.Creator).Include(s => s.Location);
|
||||||
|
|
||||||
|
if (gameVersion == GameVersion.LittleBigPlanetVita || gameVersion == GameVersion.LittleBigPlanetPSP || gameVersion == GameVersion.Unknown)
|
||||||
|
{
|
||||||
|
return query.Where(s => s.GameVersion == gameVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
return query.Where(s => s.GameVersion <= gameVersion);
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("slots/by")]
|
[HttpGet("slots/by")]
|
||||||
public async Task<IActionResult> SlotsBy([FromQuery] string u, [FromQuery] int pageStart, [FromQuery] int pageSize)
|
public async Task<IActionResult> SlotsBy([FromQuery] string u, [FromQuery] int pageStart, [FromQuery] int pageSize)
|
||||||
{
|
{
|
||||||
|
@ -37,9 +49,8 @@ public class SlotsController : ControllerBase
|
||||||
|
|
||||||
string response = Enumerable.Aggregate
|
string response = Enumerable.Aggregate
|
||||||
(
|
(
|
||||||
this.database.Slots.Where(s => s.GameVersion <= gameVersion)
|
this.getSlots
|
||||||
.Include(s => s.Creator)
|
(gameVersion)
|
||||||
.Include(s => s.Location)
|
|
||||||
.Where(s => s.Creator!.Username == user.Username)
|
.Where(s => s.Creator!.Username == user.Username)
|
||||||
.Skip(pageStart - 1)
|
.Skip(pageStart - 1)
|
||||||
.Take(Math.Min(pageSize, ServerSettings.Instance.EntitledSlots)),
|
.Take(Math.Min(pageSize, ServerSettings.Instance.EntitledSlots)),
|
||||||
|
@ -77,10 +88,7 @@ public class SlotsController : ControllerBase
|
||||||
|
|
||||||
GameVersion gameVersion = token.GameVersion;
|
GameVersion gameVersion = token.GameVersion;
|
||||||
|
|
||||||
Slot? slot = await this.database.Slots.Where(s => s.GameVersion <= gameVersion)
|
Slot? slot = await this.getSlots(gameVersion).FirstOrDefaultAsync(s => s.SlotId == id);
|
||||||
.Include(s => s.Creator)
|
|
||||||
.Include(s => s.Location)
|
|
||||||
.FirstOrDefaultAsync(s => s.SlotId == id);
|
|
||||||
|
|
||||||
if (slot == null) return this.NotFound();
|
if (slot == null) return this.NotFound();
|
||||||
|
|
||||||
|
@ -121,12 +129,8 @@ public class SlotsController : ControllerBase
|
||||||
|
|
||||||
GameVersion gameVersion = token.GameVersion;
|
GameVersion gameVersion = token.GameVersion;
|
||||||
|
|
||||||
IQueryable<Slot> slots = this.database.Slots.Where(s => s.GameVersion <= gameVersion)
|
IQueryable<Slot> slots = this.getSlots(gameVersion).OrderByDescending(s => s.FirstUploaded).Skip(pageStart - 1).Take(Math.Min(pageSize, 30));
|
||||||
.Include(s => s.Creator)
|
|
||||||
.Include(s => s.Location)
|
|
||||||
.OrderByDescending(s => s.FirstUploaded)
|
|
||||||
.Skip(pageStart - 1)
|
|
||||||
.Take(Math.Min(pageSize, 30));
|
|
||||||
string response = Enumerable.Aggregate(slots, string.Empty, (current, slot) => current + slot.Serialize());
|
string response = Enumerable.Aggregate(slots, string.Empty, (current, slot) => current + slot.Serialize());
|
||||||
|
|
||||||
return this.Ok
|
return this.Ok
|
||||||
|
@ -156,10 +160,8 @@ public class SlotsController : ControllerBase
|
||||||
|
|
||||||
GameVersion gameVersion = token.GameVersion;
|
GameVersion gameVersion = token.GameVersion;
|
||||||
|
|
||||||
IQueryable<Slot> slots = this.database.Slots.Where(s => s.GameVersion <= gameVersion)
|
IQueryable<Slot> slots = this.getSlots(gameVersion)
|
||||||
.Where(s => s.TeamPick)
|
.Where(s => s.TeamPick)
|
||||||
.Include(s => s.Creator)
|
|
||||||
.Include(s => s.Location)
|
|
||||||
.OrderByDescending(s => s.LastUpdated)
|
.OrderByDescending(s => s.LastUpdated)
|
||||||
.Skip(pageStart - 1)
|
.Skip(pageStart - 1)
|
||||||
.Take(Math.Min(pageSize, 30));
|
.Take(Math.Min(pageSize, 30));
|
||||||
|
@ -192,11 +194,7 @@ public class SlotsController : ControllerBase
|
||||||
|
|
||||||
GameVersion gameVersion = token.GameVersion;
|
GameVersion gameVersion = token.GameVersion;
|
||||||
|
|
||||||
IEnumerable<Slot> slots = this.database.Slots.Where(s => s.GameVersion <= gameVersion)
|
IEnumerable<Slot> slots = this.getSlots(gameVersion).OrderBy(_ => EF.Functions.Random()).Take(Math.Min(pageSize, 30));
|
||||||
.Include(s => s.Creator)
|
|
||||||
.Include(s => s.Location)
|
|
||||||
.OrderBy(_ => EF.Functions.Random())
|
|
||||||
.Take(Math.Min(pageSize, 30));
|
|
||||||
|
|
||||||
string response = slots.Aggregate(string.Empty, (current, slot) => current + slot.Serialize());
|
string response = slots.Aggregate(string.Empty, (current, slot) => current + slot.Serialize());
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<None Remove="recent-activity.xml"/>
|
<None Remove="recent-activity.xml"/>
|
||||||
|
<None Remove="r.tar.gz"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
|
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
|
||||||
|
|
|
@ -11,7 +11,6 @@ namespace LBPUnion.ProjectLighthouse.Types;
|
||||||
|
|
||||||
public class User
|
public class User
|
||||||
{
|
{
|
||||||
public readonly ClientsConnected ClientsConnected = new();
|
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
|
|
||||||
|
@ -172,7 +171,7 @@ public class User
|
||||||
{
|
{
|
||||||
string user = LbpSerializer.TaggedStringElement("npHandle", this.Username, "icon", this.IconHash) +
|
string user = LbpSerializer.TaggedStringElement("npHandle", this.Username, "icon", this.IconHash) +
|
||||||
LbpSerializer.StringElement("game", this.Game) +
|
LbpSerializer.StringElement("game", this.Game) +
|
||||||
this.SerializeSlots(gameVersion == GameVersion.LittleBigPlanetVita) +
|
this.SerializeSlots(gameVersion) +
|
||||||
LbpSerializer.StringElement("lists", this.Lists) +
|
LbpSerializer.StringElement("lists", this.Lists) +
|
||||||
LbpSerializer.StringElement("lists_quota", ServerSettings.Instance.ListsQuota) + // technically not a part of the user but LBP expects it
|
LbpSerializer.StringElement("lists_quota", ServerSettings.Instance.ListsQuota) + // technically not a part of the user but LBP expects it
|
||||||
LbpSerializer.StringElement("biography", this.Biography) +
|
LbpSerializer.StringElement("biography", this.Biography) +
|
||||||
|
@ -192,7 +191,6 @@ public class User
|
||||||
LbpSerializer.StringElement("yay2", this.YayHash) +
|
LbpSerializer.StringElement("yay2", this.YayHash) +
|
||||||
LbpSerializer.StringElement("boo2", this.BooHash) +
|
LbpSerializer.StringElement("boo2", this.BooHash) +
|
||||||
LbpSerializer.StringElement("meh2", this.MehHash);
|
LbpSerializer.StringElement("meh2", this.MehHash);
|
||||||
this.ClientsConnected.Serialize();
|
|
||||||
|
|
||||||
return LbpSerializer.TaggedStringElement("user", user, "type", "user");
|
return LbpSerializer.TaggedStringElement("user", user, "type", "user");
|
||||||
}
|
}
|
||||||
|
@ -225,17 +223,16 @@ public class User
|
||||||
|
|
||||||
private static readonly string[] slotTypes =
|
private static readonly string[] slotTypes =
|
||||||
{
|
{
|
||||||
// "lbp1",
|
|
||||||
"lbp2", "lbp3", "crossControl",
|
"lbp2", "lbp3", "crossControl",
|
||||||
};
|
};
|
||||||
|
|
||||||
private string SerializeSlots(bool isVita = false)
|
private string SerializeSlots(GameVersion gameVersion)
|
||||||
{
|
{
|
||||||
string slots = string.Empty;
|
string slots = string.Empty;
|
||||||
|
|
||||||
string[] slotTypesLocal;
|
string[] slotTypesLocal;
|
||||||
|
|
||||||
if (isVita)
|
if (gameVersion == GameVersion.LittleBigPlanetVita)
|
||||||
{
|
{
|
||||||
slots += LbpSerializer.StringElement("lbp2UsedSlots", this.GetUsedSlotsForGame(GameVersion.LittleBigPlanetVita));
|
slots += LbpSerializer.StringElement("lbp2UsedSlots", this.GetUsedSlotsForGame(GameVersion.LittleBigPlanetVita));
|
||||||
slotTypesLocal = new[]
|
slotTypesLocal = new[]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue