refactor: modularize Beam into new projects and interfaces

- Introduced modularity by splitting Beam into new projects: Beam.Abstractions, Beam.Models, and Beam.Downloaders.
- Refactored existing classes into appropriate namespaces and projects.
- Replaced specific implementations with abstractions (e.g., SourceLinkBuilder to LinkBuilder, State to IState, etc.).
- Updated interfaces: added ITemplate, IArticleData, IDownloadReport, and others for improved extensibility.
- Removed deprecated classes like SourceLinkBuilder and StateChangerFactory.
- Enhanced link handling in downloaders by refactoring to use `string` over `SourceLink`.
- Consolidated shared logic under Beam.Abstractions.
This commit is contained in:
qwsdcvghyu89
2025-09-22 01:51:46 +10:00
parent a7d148a96f
commit 7ed05abdb8
128 changed files with 2058 additions and 1804 deletions
+30
View File
@@ -23,6 +23,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Fluent", "Beam.Fluent\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Models", "Beam.Models\Beam.Models.csproj", "{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Api", "Beam.Api\Beam.Api.csproj", "{F649DA9C-FEE6-4730-A1C2-67B4FB899337}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Abstractions", "Beam.Abstractions\Beam.Abstractions.csproj", "{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Exceptions", "Beam.Exceptions\Beam.Exceptions.csproj", "{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Downloaders", "Beam.Downloaders\Beam.Downloaders.csproj", "{B61296C0-D816-4C33-BAF6-9B662B8EE598}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Data", "Beam.Data\Beam.Data.csproj", "{99F5026F-180D-46DC-96BF-B3CCE21C2E90}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -69,6 +79,26 @@ Global
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Release|Any CPU.Build.0 = Release|Any CPU
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Release|Any CPU.Build.0 = Release|Any CPU
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Release|Any CPU.Build.0 = Release|Any CPU
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Release|Any CPU.Build.0 = Release|Any CPU
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Release|Any CPU.Build.0 = Release|Any CPU
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE