Fix test compilation and level activity flattening

This commit is contained in:
Slendy 2024-05-13 19:07:28 -05:00
commit b41b01a6eb
No known key found for this signature in database
GPG key ID: 7288D68361B91428
3 changed files with 18 additions and 6 deletions

View file

@ -283,11 +283,13 @@ public class ActivityController : ControllerBase
foreach (IGrouping<InnerActivityGroup, ActivityDto> item in itemGroup) foreach (IGrouping<InnerActivityGroup, ActivityDto> item in itemGroup)
{ {
Logger.Debug( Logger.Debug(
@$" Inner group key: TargetId={item.Key.TargetId}, UserId={item.Key.UserId}, Type={item.Key.Type}", LogArea.Activity); @$" Inner group key: TargetId={item.Key.TargetId}, UserId={item.Key.UserId}, Type={item.Key.Type}",
LogArea.Activity);
foreach (ActivityDto activity in item) foreach (ActivityDto activity in item)
{ {
Logger.Debug( Logger.Debug(
@$" Activity: {activity.GroupType}, Timestamp: {activity.Activity.Timestamp}, UserId: {activity.Activity.UserId}, EventType: {activity.Activity.Type}, TargetId: {activity.TargetId}", LogArea.Activity); @$" Activity: {activity.GroupType}, Timestamp: {activity.Activity.Timestamp}, UserId: {activity.Activity.UserId}, EventType: {activity.Activity.Type}, TargetId: {activity.TargetId}",
LogArea.Activity);
} }
} }
} }
@ -308,6 +310,14 @@ public class ActivityController : ControllerBase
IQueryable<ActivityDto> activityQuery = this.database.Activities.ToActivityDto() IQueryable<ActivityDto> activityQuery = this.database.Activities.ToActivityDto()
.Where(a => a.Activity.Type != EventType.NewsPost && a.Activity.Type != EventType.MMPickLevel); .Where(a => a.Activity.Type != EventType.NewsPost && a.Activity.Type != EventType.MMPickLevel);
if (token.GameVersion != GameVersion.LittleBigPlanet3)
{
activityQuery = activityQuery.Where(a =>
a.Activity.Type != EventType.CreatePlaylist &&
a.Activity.Type != EventType.HeartPlaylist &&
a.Activity.Type != EventType.AddLevelToPlaylist);
}
bool isLevelActivity = username == null; bool isLevelActivity = username == null;
// Slot activity // Slot activity
@ -346,6 +356,7 @@ public class ActivityController : ControllerBase
return this.Ok(GameStream.CreateFromGroups(token, return this.Ok(GameStream.CreateFromGroups(token,
outerGroups, outerGroups,
times.Start.ToUnixTimeMilliseconds(), times.Start.ToUnixTimeMilliseconds(),
oldestTimestamp, isLevelActivity)); oldestTimestamp,
isLevelActivity));
} }
} }

View file

@ -6,7 +6,7 @@ using LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots;
using LBPUnion.ProjectLighthouse.Tests.Helpers; using LBPUnion.ProjectLighthouse.Tests.Helpers;
using LBPUnion.ProjectLighthouse.Types.Entities.Level; using LBPUnion.ProjectLighthouse.Types.Entities.Level;
using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Entities.Token;
using LBPUnion.ProjectLighthouse.Types.Serialization; using LBPUnion.ProjectLighthouse.Types.Serialization.Review;
using LBPUnion.ProjectLighthouse.Types.Users; using LBPUnion.ProjectLighthouse.Types.Users;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Xunit; using Xunit;

View file

@ -134,9 +134,10 @@ public class GameStream : ILbpSerializable, INeedsPreparationForSerialization
gameStream.Groups = groups.Select(GameStreamGroup.CreateFromGroup).ToList(); gameStream.Groups = groups.Select(GameStreamGroup.CreateFromGroup).ToList();
// Workaround for level activity because it shouldn't contain nested activity groups // Workaround for level activity because it shouldn't contain nested activity groups
if (gameStream.Groups.Count == 1 && groups.First().Key.GroupType == ActivityGroupType.Level && removeNesting) if (gameStream.Groups.Count >= 1 && groups.All(g => g.Key.GroupType == ActivityGroupType.Level) && removeNesting)
{ {
gameStream.Groups = gameStream.Groups.First().Groups; // Flatten all inner groups into a single list
gameStream.Groups = gameStream.Groups.Select(g => g.Groups).SelectMany(g => g).ToList();
} }
// Workaround to turn a single subgroup into the primary group for news and team picks // Workaround to turn a single subgroup into the primary group for news and team picks