diff --git a/MatrixAntiDmSpam/AntiDmSpamConfiguration.cs b/MatrixAntiDmSpam.Core/AntiDmSpamConfiguration.cs
index fc99f57..fe68e8a 100644
--- a/MatrixAntiDmSpam/AntiDmSpamConfiguration.cs
+++ b/MatrixAntiDmSpam.Core/AntiDmSpamConfiguration.cs
@@ -1,4 +1,6 @@
-namespace MatrixAntiDmSpam;
+using Microsoft.Extensions.Configuration;
+
+namespace MatrixAntiDmSpam.Core;
public class AntiDmSpamConfiguration {
public AntiDmSpamConfiguration(IConfiguration config) => config.GetRequiredSection("AntiDmSpam").Bind(this);
diff --git a/MatrixAntiDmSpam/InviteHandler.cs b/MatrixAntiDmSpam.Core/InviteHandler.cs
index 26a88c7..41f4011 100644
--- a/MatrixAntiDmSpam/InviteHandler.cs
+++ b/MatrixAntiDmSpam.Core/InviteHandler.cs
@@ -4,8 +4,9 @@ using ArcaneLibs.Extensions;
using LibMatrix.Helpers;
using LibMatrix.RoomTypes;
using LibMatrix.Utilities.Bot.Interfaces;
+using Microsoft.Extensions.Logging;
-namespace MatrixAntiDmSpam;
+namespace MatrixAntiDmSpam.Core;
public class RoomInviteHandler(ILogger<RoomInviteHandler> logger, AntiDmSpamConfiguration config) : IRoomInviteHandler {
public List<RoomInviteContext> Invites { get; } = [];
diff --git a/MatrixAntiDmSpam.Core/MatrixAntiDmSpam.Core.csproj b/MatrixAntiDmSpam.Core/MatrixAntiDmSpam.Core.csproj
new file mode 100644
index 0000000..6e9363f
--- /dev/null
+++ b/MatrixAntiDmSpam.Core/MatrixAntiDmSpam.Core.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>net9.0</TargetFramework>
+ <LangVersion>preview</LangVersion>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <Nullable>enable</Nullable>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.0-preview.3.25171.5" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\LibMatrix\LibMatrix\LibMatrix.csproj" />
+ <ProjectReference Include="..\LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj" />
+ </ItemGroup>
+
+</Project>
diff --git a/MatrixAntiDmSpam/PolicyExecutor.cs b/MatrixAntiDmSpam.Core/PolicyExecutor.cs
index 65e7f9f..4dcaf2b 100644
--- a/MatrixAntiDmSpam/PolicyExecutor.cs
+++ b/MatrixAntiDmSpam.Core/PolicyExecutor.cs
@@ -6,8 +6,10 @@ using LibMatrix.Helpers;
using LibMatrix.Homeservers;
using LibMatrix.RoomTypes;
using LibMatrix.Utilities.Bot.Interfaces;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
-namespace MatrixAntiDmSpam;
+namespace MatrixAntiDmSpam.Core;
public class PolicyExecutor(
ILogger<PolicyExecutor> logger,
diff --git a/MatrixAntiDmSpam/PolicyListFetcher.cs b/MatrixAntiDmSpam.Core/PolicyListFetcher.cs
index 723550f..b8f5518 100644
--- a/MatrixAntiDmSpam/PolicyListFetcher.cs
+++ b/MatrixAntiDmSpam.Core/PolicyListFetcher.cs
@@ -2,8 +2,10 @@ using LibMatrix.Filters;
using LibMatrix.Helpers;
using LibMatrix.Homeservers;
using LibMatrix.RoomTypes;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
-namespace MatrixAntiDmSpam;
+namespace MatrixAntiDmSpam.Core;
public class PolicyListFetcher(ILogger<PolicyListFetcher> logger, AntiDmSpamConfiguration config, AuthenticatedHomeserverGeneric homeserver, PolicyStore policyStore)
: IHostedService {
diff --git a/MatrixAntiDmSpam/PolicyStore.cs b/MatrixAntiDmSpam.Core/PolicyStore.cs
index 863bc92..9c439fa 100644
--- a/MatrixAntiDmSpam/PolicyStore.cs
+++ b/MatrixAntiDmSpam.Core/PolicyStore.cs
@@ -1,7 +1,7 @@
using LibMatrix;
using LibMatrix.EventTypes.Spec.State.Policy;
-namespace MatrixAntiDmSpam;
+namespace MatrixAntiDmSpam.Core;
public class PolicyStore {
public Dictionary<string, PolicyRuleEventContent> AllPolicies { get; } = [];
diff --git a/MatrixAntiDmSpam.sln b/MatrixAntiDmSpam.sln
index 296786a..143be0b 100644
--- a/MatrixAntiDmSpam.sln
+++ b/MatrixAntiDmSpam.sln
@@ -42,6 +42,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.TestDataGenerator
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Utilities.Bot", "LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj", "{E526424D-ADC7-41DB-AD63-E359AC2954D9}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixAntiDmSpam.Core", "MatrixAntiDmSpam.Core\MatrixAntiDmSpam.Core.csproj", "{5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -280,6 +282,18 @@ Global
{E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x64.Build.0 = Release|Any CPU
{E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x86.ActiveCfg = Release|Any CPU
{E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x86.Build.0 = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|x64.Build.0 = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Debug|x86.Build.0 = Debug|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|x64.ActiveCfg = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|x64.Build.0 = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|x86.ActiveCfg = Release|Any CPU
+ {5A4F5F8A-3638-4E3C-B20D-4F651EA165DD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/MatrixAntiDmSpam/MatrixAntiDmSpam.csproj b/MatrixAntiDmSpam/MatrixAntiDmSpam.csproj
index 703a461..596d203 100644
--- a/MatrixAntiDmSpam/MatrixAntiDmSpam.csproj
+++ b/MatrixAntiDmSpam/MatrixAntiDmSpam.csproj
@@ -20,5 +20,6 @@
<ItemGroup>
<ProjectReference Include="..\LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj" />
+ <ProjectReference Include="..\MatrixAntiDmSpam.Core\MatrixAntiDmSpam.Core.csproj" />
</ItemGroup>
</Project>
diff --git a/MatrixAntiDmSpam/Program.cs b/MatrixAntiDmSpam/Program.cs
index e3eb037..fc1d603 100644
--- a/MatrixAntiDmSpam/Program.cs
+++ b/MatrixAntiDmSpam/Program.cs
@@ -1,7 +1,7 @@
using LibMatrix.Extensions;
using LibMatrix.Services;
using LibMatrix.Utilities.Bot;
-using MatrixAntiDmSpam;
+using MatrixAntiDmSpam.Core;
var builder = Host.CreateApplicationBuilder(args);
|