Cleanup code and formatting

This commit is contained in:
jvyden 2021-11-02 20:35:21 -04:00
parent d64aa421fe
commit 61f027b57e
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
13 changed files with 42 additions and 46 deletions

View file

@ -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);

View file

@ -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")]

View file

@ -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;

View file

@ -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)));
} }
} }

View file

@ -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}]");
} }
} }

View file

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

View file

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

View file

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

View file

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

View file

@ -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;

View file

@ -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;

View file

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

View file

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