Skip to content
This repository was archived by the owner on Sep 28, 2025. It is now read-only.

Commit cfba095

Browse files
committed
feat: Implement MiniLML6v2 EPG Matcher
1 parent 1bb4804 commit cfba095

File tree

20 files changed

+31472
-118
lines changed

20 files changed

+31472
-118
lines changed

StreamMaster.sln

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BuildClientAPI", "src\Build
4444
EndProject
4545
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StreamMaster.PlayList", "src\StreamMaster.PlayList\StreamMaster.PlayList.csproj", "{ACC8203B-0256-4218-B089-C1145C4E959C}"
4646
EndProject
47-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.EPG", "src\StreamMaster.EPG\StreamMaster.EPG.csproj", "{2E22C6A6-5B92-3910-00B2-3D7410403136}"
47+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.EPG.Matching.Fuzzy", "src\StreamMaster.EPG\StreamMaster.EPG.Matching.Fuzzy.csproj", "{2E22C6A6-5B92-3910-00B2-3D7410403136}"
4848
EndProject
4949
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.Infrastructure.EF.PGSQL.Console", "src\StreamMaster.Infrastructure.EF.PGSQL.Console\StreamMaster.Infrastructure.EF.PGSQL.Console.csproj", "{ADD8EDF8-775B-468C-3BAB-2F0C4EDB1BEC}"
5050
EndProject
@@ -58,6 +58,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.Application.Un
5858
EndProject
5959
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.SchedulesDirect.Services.UnitTests", "src\tests\StreamMaster.SchedulesDirect.Services.UnitTests\StreamMaster.SchedulesDirect.Services.UnitTests.csproj", "{F628CC15-8508-BFB5-5849-5A29FB07FC47}"
6060
EndProject
61+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.EPG.Matching.MiniLML6v2", "src\StreamMaster.EPG.Matching.MiniLML6v2\StreamMaster.EPG.Matching.MiniLML6v2.csproj", "{2948776F-73DB-4995-A20E-2DFD6BF2F507}"
62+
EndProject
63+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamMaster.EPG.Matching.MiniLML6v2.UnitTests", "src\tests\StreamMaster.EPG.Matching.MiniLML6v2.UnitTests\StreamMaster.EPG.Matching.MiniLML6v2.UnitTests.csproj", "{DFE0EEBA-19CB-41BA-B087-8A539595B22A}"
64+
EndProject
6165
Global
6266
GlobalSection(SolutionConfigurationPlatforms) = preSolution
6367
Debug|Any CPU = Debug|Any CPU
@@ -234,6 +238,22 @@ Global
234238
{F628CC15-8508-BFB5-5849-5A29FB07FC47}.Release|Any CPU.Build.0 = Release|Any CPU
235239
{F628CC15-8508-BFB5-5849-5A29FB07FC47}.Release|ARM64.ActiveCfg = Release|Any CPU
236240
{F628CC15-8508-BFB5-5849-5A29FB07FC47}.Release|ARM64.Build.0 = Release|Any CPU
241+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
242+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Debug|Any CPU.Build.0 = Debug|Any CPU
243+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Debug|ARM64.ActiveCfg = Debug|Any CPU
244+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Debug|ARM64.Build.0 = Debug|Any CPU
245+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Release|Any CPU.ActiveCfg = Release|Any CPU
246+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Release|Any CPU.Build.0 = Release|Any CPU
247+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Release|ARM64.ActiveCfg = Release|Any CPU
248+
{2948776F-73DB-4995-A20E-2DFD6BF2F507}.Release|ARM64.Build.0 = Release|Any CPU
249+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
250+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Debug|Any CPU.Build.0 = Debug|Any CPU
251+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
252+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Debug|ARM64.Build.0 = Debug|Any CPU
253+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Release|Any CPU.ActiveCfg = Release|Any CPU
254+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Release|Any CPU.Build.0 = Release|Any CPU
255+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Release|ARM64.ActiveCfg = Release|Any CPU
256+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A}.Release|ARM64.Build.0 = Release|Any CPU
237257
EndGlobalSection
238258
GlobalSection(SolutionProperties) = preSolution
239259
HideSolutionNode = FALSE
@@ -260,6 +280,8 @@ Global
260280
{51976BE7-621E-AF33-AEEA-99EB90ECBB6F} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
261281
{9DD8BABB-CDEC-9C8F-B1A4-631FA6670CE7} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
262282
{F628CC15-8508-BFB5-5849-5A29FB07FC47} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
283+
{2948776F-73DB-4995-A20E-2DFD6BF2F507} = {A110113B-BD6D-4B5D-B0DB-DD6431463476}
284+
{DFE0EEBA-19CB-41BA-B087-8A539595B22A} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
263285
EndGlobalSection
264286
GlobalSection(ExtensibilityGlobals) = postSolution
265287
SolutionGuid = {A052E296-D42D-4EB4-8967-70DF432D997D}

src/StreamMaster.API/Program.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using StreamMaster.Application.Statistics.Commands;
1616
using StreamMaster.Domain.Helpers;
1717
using StreamMaster.EPG;
18+
using StreamMaster.EPG.Matching.MiniLML6v2;
1819
using StreamMaster.Infrastructure;
1920
using StreamMaster.Infrastructure.EF;
2021
using StreamMaster.Infrastructure.EF.PGSQL;
@@ -177,7 +178,8 @@ void ConfigureSettings<T>(WebApplicationBuilder builder) where T : class
177178
}
178179

179180
// GetOrAdd services to the container.
180-
builder.Services.AddEPGServices();
181+
//builder.Services.AddFuzzyEPGMatcherServices();
182+
builder.Services.AddMiniLML6v2EPGMatcherServices();
181183
builder.Services.AddSchedulesDirectAPIServices();
182184
builder.Services.AddSchedulesDirectServices();
183185
builder.Services.AddApplicationServices();

src/StreamMaster.API/StreamMaster.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<PackageReference Include="System.text.regularexpressions" Version="4.3.1" />
6565
</ItemGroup>
6666
<ItemGroup>
67+
<ProjectReference Include="..\StreamMaster.EPG.Matching.MiniLML6v2\StreamMaster.EPG.Matching.MiniLML6v2.csproj" />
6768
<ProjectReference Include="..\StreamMaster.Infrastructure\StreamMaster.Infrastructure.csproj" />
6869
<ProjectReference Include="..\StreamMaster.PlayList\StreamMaster.PlayList.csproj" />
6970
<ProjectReference Include="..\StreamMaster.SchedulesDirect.Services\StreamMaster.SchedulesDirect.Services.csproj" />

src/StreamMaster.EPG/IEpgMatcher.cs renamed to src/StreamMaster.Domain/EPG/IEpgMatcher.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
using StreamMaster.Domain.Models;
2-
using StreamMaster.Domain.XmltvXml;
1+
using StreamMaster.Domain.XmltvXml;
32

4-
namespace StreamMaster.EPG
3+
namespace StreamMaster.Domain.EPG
54
{
65
/// <summary>
76
/// Represents a service that can match an SMChannel to the best possible EPG channel.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using StreamMaster.Domain.EPG;
3+
4+
namespace StreamMaster.EPG.Matching.MiniLML6v2;
5+
6+
public static class ConfigureServices
7+
{
8+
public static IServiceCollection AddMiniLML6v2EPGMatcherServices(this IServiceCollection services)
9+
{
10+
services.AddScoped<IEpgMatcher, MiniLML6v2EPGMatcher>();
11+
return services;
12+
}
13+
}

0 commit comments

Comments
 (0)