mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-07-15 17:51:28 +00:00
Cleanup code and formatting
This commit is contained in:
parent
d64aa421fe
commit
61f027b57e
13 changed files with 42 additions and 46 deletions
|
@ -47,7 +47,7 @@ namespace LBPUnion.ProjectLighthouse.Tests
|
||||||
|
|
||||||
public Task<HttpResponseMessage> AuthenticatedRequest(string endpoint, string mmAuth, HttpMethod method)
|
public Task<HttpResponseMessage> AuthenticatedRequest(string endpoint, string mmAuth, HttpMethod method)
|
||||||
{
|
{
|
||||||
using HttpRequestMessage? requestMessage = new(method, endpoint);
|
using HttpRequestMessage requestMessage = new(method, endpoint);
|
||||||
requestMessage.Headers.Add("Cookie", mmAuth);
|
requestMessage.Headers.Add("Cookie", mmAuth);
|
||||||
|
|
||||||
return this.Client.SendAsync(requestMessage);
|
return this.Client.SendAsync(requestMessage);
|
||||||
|
@ -61,7 +61,7 @@ namespace LBPUnion.ProjectLighthouse.Tests
|
||||||
|
|
||||||
public async Task<HttpResponseMessage> AuthenticatedUploadFileRequest(string endpoint, string filePath, string mmAuth)
|
public async Task<HttpResponseMessage> AuthenticatedUploadFileRequest(string endpoint, string filePath, string mmAuth)
|
||||||
{
|
{
|
||||||
using HttpRequestMessage? requestMessage = new(HttpMethod.Post, endpoint);
|
using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint);
|
||||||
requestMessage.Headers.Add("Cookie", mmAuth);
|
requestMessage.Headers.Add("Cookie", mmAuth);
|
||||||
requestMessage.Content = new StringContent(await File.ReadAllTextAsync(filePath));
|
requestMessage.Content = new StringContent(await File.ReadAllTextAsync(filePath));
|
||||||
return await this.Client.SendAsync(requestMessage);
|
return await this.Client.SendAsync(requestMessage);
|
||||||
|
@ -69,7 +69,7 @@ namespace LBPUnion.ProjectLighthouse.Tests
|
||||||
|
|
||||||
public async Task<HttpResponseMessage> AuthenticatedUploadDataRequest(string endpoint, byte[] data, string mmAuth)
|
public async Task<HttpResponseMessage> AuthenticatedUploadDataRequest(string endpoint, byte[] data, string mmAuth)
|
||||||
{
|
{
|
||||||
using HttpRequestMessage? requestMessage = new(HttpMethod.Post, endpoint);
|
using HttpRequestMessage requestMessage = new(HttpMethod.Post, endpoint);
|
||||||
requestMessage.Headers.Add("Cookie", mmAuth);
|
requestMessage.Headers.Add("Cookie", mmAuth);
|
||||||
requestMessage.Content = new ByteArrayContent(data);
|
requestMessage.Content = new ByteArrayContent(data);
|
||||||
return await this.Client.SendAsync(requestMessage);
|
return await this.Client.SendAsync(requestMessage);
|
||||||
|
|
|
@ -24,14 +24,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
|
||||||
public async Task<IActionResult> Eula()
|
public async Task<IActionResult> Eula()
|
||||||
{
|
{
|
||||||
User user = await this.database.UserFromRequest(this.Request);
|
User user = await this.database.UserFromRequest(this.Request);
|
||||||
return user == null
|
return user == null ? this.StatusCode(403, "") : this.Ok(EulaHelper.PrivateInstanceNoticeOrBlank + "\n" + $"{EulaHelper.License}\n");
|
||||||
? this.StatusCode(403, "")
|
|
||||||
: this.Ok
|
|
||||||
(
|
|
||||||
EulaHelper.PrivateInstanceNoticeOrBlank +
|
|
||||||
"\n" +
|
|
||||||
$"{EulaHelper.License}\n"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("announce")]
|
[HttpGet("announce")]
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace LBPUnion.ProjectLighthouse.Controllers
|
||||||
public class ScoreController : ControllerBase
|
public class ScoreController : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly Database database;
|
private readonly Database database;
|
||||||
|
|
||||||
public ScoreController(Database database)
|
public ScoreController(Database database)
|
||||||
{
|
{
|
||||||
this.database = database;
|
this.database = database;
|
||||||
|
|
|
@ -55,19 +55,19 @@ namespace LBPUnion.ProjectLighthouse.Controllers
|
||||||
|
|
||||||
return this.Ok(LbpSerializer.TaggedStringElement("slots", response, "hint_start", pageStart + Math.Min(pageSize, 30)));
|
return this.Ok(LbpSerializer.TaggedStringElement("slots", response, "hint_start", pageStart + Math.Min(pageSize, 30)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("slots/mmpicks")]
|
[HttpGet("slots/mmpicks")]
|
||||||
public IActionResult TeamPickedSlots([FromQuery] int pageStart, [FromQuery] int pageSize)
|
public IActionResult TeamPickedSlots([FromQuery] int pageStart, [FromQuery] int pageSize)
|
||||||
{
|
{
|
||||||
IQueryable<Slot> slots = this.database.Slots
|
IQueryable<Slot> slots = this.database.Slots.Where
|
||||||
.Where(s => s.TeamPick)
|
(s => s.TeamPick)
|
||||||
.Include(s => s.Creator)
|
.Include(s => s.Creator)
|
||||||
.Include(s => s.Location)
|
.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));
|
||||||
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(LbpSerializer.TaggedStringElement("slots", response, "hint_start", pageStart + Math.Min(pageSize, 30)));
|
return this.Ok(LbpSerializer.TaggedStringElement("slots", response, "hint_start", pageStart + Math.Min(pageSize, 30)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using LBPUnion.ProjectLighthouse.Types;
|
using LBPUnion.ProjectLighthouse.Types;
|
||||||
using LBPUnion.ProjectLighthouse.Types.Profiles;
|
using LBPUnion.ProjectLighthouse.Types.Profiles;
|
||||||
|
@ -137,17 +138,21 @@ namespace LBPUnion.ProjectLighthouse.Controllers
|
||||||
User user = await this.database.UserFromRequest(this.Request);
|
User user = await this.database.UserFromRequest(this.Request);
|
||||||
if (user == null) return this.StatusCode(403, "");
|
if (user == null) return this.StatusCode(403, "");
|
||||||
|
|
||||||
string pinsString = await new System.IO.StreamReader(this.Request.Body).ReadToEndAsync();
|
string pinsString = await new StreamReader(this.Request.Body).ReadToEndAsync();
|
||||||
Pins pinJson = JsonSerializer.Deserialize<Pins>(pinsString);
|
Pins pinJson = JsonSerializer.Deserialize<Pins>(pinsString);
|
||||||
|
|
||||||
|
if (pinJson == null) return this.BadRequest();
|
||||||
|
|
||||||
// Sometimes the update gets called periodically as pin progress updates via playing,
|
// Sometimes the update gets called periodically as pin progress updates via playing,
|
||||||
// may not affect equipped profile pins however, so check before setting it.
|
// may not affect equipped profile pins however, so check before setting it.
|
||||||
string currentPins = user.Pins;
|
string currentPins = user.Pins;
|
||||||
string newPins = string.Join(",", pinJson.ProfilePins);
|
string newPins = string.Join(",", pinJson.ProfilePins);
|
||||||
if (!String.Equals(currentPins,newPins)) {
|
|
||||||
user.Pins = newPins;
|
if (string.Equals(currentPins, newPins)) return this.Ok("[{\"StatusCode\":200}]");
|
||||||
await this.database.SaveChangesAsync();
|
|
||||||
}
|
user.Pins = newPins;
|
||||||
|
await this.database.SaveChangesAsync();
|
||||||
|
|
||||||
return this.Ok("[{\"StatusCode\":200}]");
|
return this.Ok("[{\"StatusCode\":200}]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace LBPUnion.ProjectLighthouse.Helpers
|
||||||
public static LbpFileType DetermineFileType(byte[] data)
|
public static LbpFileType DetermineFileType(byte[] data)
|
||||||
{
|
{
|
||||||
if (data.Length == 0) return LbpFileType.Unknown; // Can't be anything if theres no data.
|
if (data.Length == 0) return LbpFileType.Unknown; // Can't be anything if theres no data.
|
||||||
|
|
||||||
using MemoryStream ms = new(data);
|
using MemoryStream ms = new(data);
|
||||||
using BinaryReader reader = new(ms);
|
using BinaryReader reader = new(ms);
|
||||||
|
|
||||||
|
@ -69,8 +69,7 @@ namespace LBPUnion.ProjectLighthouse.Helpers
|
||||||
// Determine if file is JPEG
|
// Determine if file is JPEG
|
||||||
byte[] header = reader.ReadBytes(9);
|
byte[] header = reader.ReadBytes(9);
|
||||||
|
|
||||||
if (header[0] == 0xFF && header[1] == 0xD8 && header[2] == 0xFF && header[3] == 0xE0)
|
if (header[0] == 0xFF && header[1] == 0xD8 && header[2] == 0xFF && header[3] == 0xE0) return LbpFileType.Jpeg;
|
||||||
return LbpFileType.Jpeg;
|
|
||||||
|
|
||||||
return LbpFileType.Unknown; // Still unknown.
|
return LbpFileType.Unknown; // Still unknown.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using LBPUnion.ProjectLighthouse.Types;
|
using LBPUnion.ProjectLighthouse.Types;
|
||||||
|
|
||||||
|
@ -77,13 +75,13 @@ namespace LBPUnion.ProjectLighthouse.Helpers
|
||||||
"CUSA01077",
|
"CUSA01077",
|
||||||
"CUSA01304",
|
"CUSA01304",
|
||||||
};
|
};
|
||||||
|
|
||||||
public GameVersion FromTitleId(string titleId)
|
public GameVersion FromTitleId(string titleId)
|
||||||
{
|
{
|
||||||
if (this.LittleBigPlanet1TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet1;
|
if (this.LittleBigPlanet1TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet1;
|
||||||
if (this.LittleBigPlanet2TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet2;
|
if (this.LittleBigPlanet2TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet2;
|
||||||
if (this.LittleBigPlanet3TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet3;
|
if (this.LittleBigPlanet3TitleIds.Contains(titleId)) return GameVersion.LittleBigPlanet3;
|
||||||
|
|
||||||
return GameVersion.Unknown;
|
return GameVersion.Unknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,23 +8,23 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="BCrypt.Net-Next" Version="4.0.2" />
|
<PackageReference Include="BCrypt.Net-Next" Version="4.0.2"/>
|
||||||
<PackageReference Include="Kettu" Version="1.1.0" />
|
<PackageReference Include="Kettu" Version="1.1.0"/>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.11" />
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.11"/>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.11" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.11"/>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.11">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.11">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.2" />
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.2"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Remove="Types\SlotXsd.cs" />
|
<Compile Remove="Types\SlotXsd.cs"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="logs" />
|
<Folder Include="logs"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace LBPUnion.ProjectLighthouse.Serialization
|
||||||
public static string StringElement(KeyValuePair<string, object> pair) => $"<{pair.Key}>{pair.Value}</{pair.Key}>";
|
public static string StringElement(KeyValuePair<string, object> pair) => $"<{pair.Key}>{pair.Value}</{pair.Key}>";
|
||||||
|
|
||||||
public static string StringElement(string key, bool value) => $"<{key}>{value.ToString().ToLower()}</{key}>";
|
public static string StringElement(string key, bool value) => $"<{key}>{value.ToString().ToLower()}</{key}>";
|
||||||
|
|
||||||
public static string StringElement(string key, object value) => $"<{key}>{value}</{key}>";
|
public static string StringElement(string key, object value) => $"<{key}>{value}</{key}>";
|
||||||
|
|
||||||
public static string TaggedStringElement
|
public static string TaggedStringElement
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Kettu;
|
using Kettu;
|
||||||
|
@ -68,8 +67,7 @@ namespace LBPUnion.ProjectLighthouse
|
||||||
context.Request.EnableBuffering(); // Allows us to reset the position of Request.Body for later logging
|
context.Request.EnableBuffering(); // Allows us to reset the position of Request.Body for later logging
|
||||||
|
|
||||||
// Client digest check.
|
// Client digest check.
|
||||||
string authCookie;
|
if (!context.Request.Cookies.TryGetValue("MM_AUTH", out string authCookie)) authCookie = string.Empty;
|
||||||
if (!context.Request.Cookies.TryGetValue("MM_AUTH", out authCookie)) authCookie = string.Empty;
|
|
||||||
string digestPath = context.Request.Path;
|
string digestPath = context.Request.Path;
|
||||||
Stream body = context.Request.Body;
|
Stream body = context.Request.Body;
|
||||||
|
|
||||||
|
@ -91,7 +89,7 @@ namespace LBPUnion.ProjectLighthouse
|
||||||
}
|
}
|
||||||
|
|
||||||
// This does the same as above, but for the response stream.
|
// This does the same as above, but for the response stream.
|
||||||
using MemoryStream responseBuffer = new();
|
await using MemoryStream responseBuffer = new();
|
||||||
Stream oldResponseStream = context.Response.Body;
|
Stream oldResponseStream = context.Response.Body;
|
||||||
context.Response.Body = responseBuffer;
|
context.Response.Body = responseBuffer;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
namespace LBPUnion.ProjectLighthouse.Types.Match
|
namespace LBPUnion.ProjectLighthouse.Types.Match
|
||||||
{
|
{
|
||||||
|
[SuppressMessage("ReSharper", "CollectionNeverUpdated.Global")]
|
||||||
public class UpdatePlayersInRoom : IMatchData
|
public class UpdatePlayersInRoom : IMatchData
|
||||||
{
|
{
|
||||||
public List<string> Players;
|
public List<string> Players;
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace LBPUnion.ProjectLighthouse.Types.Profiles
|
namespace LBPUnion.ProjectLighthouse.Types.Profiles
|
||||||
{
|
{
|
||||||
public class Pins
|
public class Pins
|
||||||
{
|
{
|
||||||
[JsonPropertyName("progress")]
|
[JsonPropertyName("progress")]
|
||||||
public long[] Progress { get; set; }
|
public long[] Progress { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("awards")]
|
[JsonPropertyName("awards")]
|
||||||
public long[] Awards { get; set; }
|
public long[] Awards { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("profile_pins")]
|
[JsonPropertyName("profile_pins")]
|
||||||
public long[] ProfilePins { get; set; }
|
public long[] ProfilePins { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,14 +12,14 @@ namespace LBPUnion.ProjectLighthouse.Types
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
[Key]
|
[Key]
|
||||||
public int ScoreId { get; set; }
|
public int ScoreId { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public int SlotId { get; set; }
|
public int SlotId { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
[ForeignKey(nameof(SlotId))]
|
[ForeignKey(nameof(SlotId))]
|
||||||
public Slot Slot { get; set; }
|
public Slot Slot { get; set; }
|
||||||
|
|
||||||
[XmlElement("type")]
|
[XmlElement("type")]
|
||||||
public int Type { get; set; }
|
public int Type { get; set; }
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ namespace LBPUnion.ProjectLighthouse.Types
|
||||||
set => this.PlayerIdCollection = string.Join(',', value);
|
set => this.PlayerIdCollection = string.Join(',', value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[XmlElement("score")]
|
[XmlElement("score")]
|
||||||
public int Points { get; set; }
|
public int Points { get; set; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue