Skip to content
Merged

Dev #555

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions src/dsstats.decode/DecodeService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,10 @@ public async Task Decode()

try
{
var replayPaths = Directory.GetFiles(decodeSettings.Value.ReplayFolders.ToDo, "*SC2Replay");
replayPaths = replayPaths.Except(excludeReplays).ToArray();
var replayPaths = Directory.GetFiles(decodeSettings.Value.ReplayFolders.ToDo, "*SC2Replay")
.Where(f => !File.Exists(f + ".tmp"))
.Where(f => !excludeReplays.Contains(f))
.ToArray();

if (replayPaths.Length == 0)
{
Expand Down Expand Up @@ -251,8 +253,10 @@ public async Task DecodeRaw()

try
{
var replayPaths = Directory.GetFiles(Path.Combine(decodeSettings.Value.ReplayFolders.ToDoRaw), "*SC2Replay");
replayPaths = replayPaths.Except(excludeReplays).ToArray();
var replayPaths = Directory.GetFiles(Path.Combine(decodeSettings.Value.ReplayFolders.ToDoRaw), "*SC2Replay")
.Where(f => !File.Exists(f + ".tmp"))
.Where(f => !excludeReplays.Contains(f))
.ToArray();

if (replayPaths.Length == 0)
{
Expand Down Expand Up @@ -336,7 +340,7 @@ private void Error(DecodeParallelResult result)
}
}

private ReplayMetadata GetMetaData(Sc2Replay replay)
public static ReplayMetadata GetMetaData(Sc2Replay replay)
{
List<ReplayMetadataPlayer> players = [];

Expand Down
4 changes: 3 additions & 1 deletion src/dsstats.ratings/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ static void Main(string[] args)
{
options.UseMySql(mySqlConnectionString, ServerVersion.AutoDetect(mySqlConnectionString), p =>
{
p.CommandTimeout(600);
p.CommandTimeout(30);
p.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery);
});
options.EnableDetailedErrors();
options.EnableSensitiveDataLogging();
});

services.AddAutoMapper(typeof(AutoMapperProfile));
Expand Down
2 changes: 2 additions & 0 deletions src/dsstats.ratings/RatingService.Combo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ private async Task ProduceComboRatings(bool recalc)
var context = scope.ServiceProvider.GetRequiredService<ReplayContext>();
var ratingSaveService = scope.ServiceProvider.GetRequiredService<IRatingsSaveService>();
var comboRatings = scope.ServiceProvider.GetRequiredService<ComboRatings>();

context.Database.SetCommandTimeout(840);

await CleanupComboPreRatings(context);

Expand Down
1 change: 1 addition & 0 deletions src/tests/dsstats.decode.tests/MSTestSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
53 changes: 53 additions & 0 deletions src/tests/dsstats.decode.tests/ParseTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
using pax.dsstats.parser;
using s2protocol.NET;

namespace dsstats.decode.tests;

[TestClass]
public sealed class ParseTests
{
[TestMethod]
public async Task CanDecodeReplay()
{
var path = "/data/ds/testreplays/Direct Strike TE (4545).SC2Replay";
var decoder = new ReplayDecoder();
var options = new ReplayDecoderOptions()
{
Initdata = true,
Details = true,
Metadata = true,
TrackerEvents = true,
};
var sc2Replay = await decoder.DecodeAsync(path, options);
Assert.IsNotNull(sc2Replay);
var dsReplay = Parse.GetDsReplay(sc2Replay);
Assert.IsNotNull(dsReplay);
using var md5 = System.Security.Cryptography.MD5.Create();
var replay = Parse.GetReplayDto(dsReplay, md5);
Assert.IsNotNull(replay);
}

[TestMethod]
public async Task CanDecodeReplay2()
{
List<string> paths = ["/data/ds/testreplays/Direct Strike TE (4545).SC2Replay"];
var decoder = new ReplayDecoder();
var options = new ReplayDecoderOptions()
{
Initdata = true,
Details = true,
Metadata = true,
TrackerEvents = true,
};
await foreach (var result in decoder.DecodeParallelWithErrorReport(paths, 1, options))
{
Assert.IsNotNull(result.Sc2Replay);
var metaData = dsstats.decode.DecodeService.GetMetaData(result.Sc2Replay);
var dsReplay = Parse.GetDsReplay(result.Sc2Replay);
Assert.IsNotNull(dsReplay);
using var md5 = System.Security.Cryptography.MD5.Create();
var replay = Parse.GetReplayDto(dsReplay, md5);
Assert.IsNotNull(replay);
}
}
}
24 changes: 24 additions & 0 deletions src/tests/dsstats.decode.tests/dsstats.decode.tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MSTest" Version="4.0.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\dsstats.decode\dsstats.decode.csproj" />
<ProjectReference Include="..\..\dsstats.maui\pax.dsstats.parser\pax.dsstats.parser.csproj" />
<ProjectReference Include="..\..\dsstats.shared\dsstats.shared.csproj" />
</ItemGroup>

<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>

</Project>
79 changes: 79 additions & 0 deletions src/tests/dsstats.decode.tests/dsstats.decode.tests.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dsstats.shared", "..\..\dsstats.shared\dsstats.shared.csproj", "{3DFF95A8-63F3-4ADC-8233-825D8119E250}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pax.dsstats.parser", "..\..\dsstats.maui\pax.dsstats.parser\pax.dsstats.parser.csproj", "{8275C892-6B1D-4535-92A2-888DEEA52C00}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dsstats.decode.tests", "dsstats.decode.tests.csproj", "{390C7CD2-C11E-4116-9D27-818FB33ED0FE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dsstats.decode", "..\..\dsstats.decode\dsstats.decode.csproj", "{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|x64.ActiveCfg = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|x64.Build.0 = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|x86.ActiveCfg = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Debug|x86.Build.0 = Debug|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|Any CPU.Build.0 = Release|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|x64.ActiveCfg = Release|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|x64.Build.0 = Release|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|x86.ActiveCfg = Release|Any CPU
{3DFF95A8-63F3-4ADC-8233-825D8119E250}.Release|x86.Build.0 = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|x64.ActiveCfg = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|x64.Build.0 = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|x86.ActiveCfg = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Debug|x86.Build.0 = Debug|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|Any CPU.Build.0 = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|x64.ActiveCfg = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|x64.Build.0 = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|x86.ActiveCfg = Release|Any CPU
{8275C892-6B1D-4535-92A2-888DEEA52C00}.Release|x86.Build.0 = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|x64.ActiveCfg = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|x64.Build.0 = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|x86.ActiveCfg = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Debug|x86.Build.0 = Debug|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|Any CPU.Build.0 = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|x64.ActiveCfg = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|x64.Build.0 = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|x86.ActiveCfg = Release|Any CPU
{390C7CD2-C11E-4116-9D27-818FB33ED0FE}.Release|x86.Build.0 = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|x64.ActiveCfg = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|x64.Build.0 = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|x86.ActiveCfg = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Debug|x86.Build.0 = Debug|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|Any CPU.Build.0 = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|x64.ActiveCfg = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|x64.Build.0 = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|x86.ActiveCfg = Release|Any CPU
{C7C57907-67BD-9A5D-6CAC-F386EEB7B009}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F01C0578-C065-48AE-81A1-994AF5C2E043}
EndGlobalSection
EndGlobal