Summary
Large internal refactor of the single JacRed web project — splits god-classes into focused modules, unifies tracker sync patterns, and modernizes hosting. No HTTP route, API JSON shape, or FileDB on-disk layout changes.
Architecture
- Tracks —
TracksDB→ facade +TracksIndexManager,TracksPathResolver,TracksAnalyzer(core /Workflow/Remotepartials),TracksExportService,TracksStatsCache,TracksLogging,TracksModels - FileDB — partials (
Metadata,UrlParsing,Cron,MasterDb);StaticDb.csremoved - Stats — moved to
Infrastructure/Stats/(StatsCollector,StatsTorrentIndex,StatsSummary) - Search —
JackettCardMatcher,JackettResultBuilder; thinJackettSearchService - Dev —
Application/Dev/Migrations/*+ dispatcherDevMigrationService;TracksAdminService(renamed fromDevTracksService) - Configuration —
Configuration/Schema/ConfigSchema,AppConfigurationValidator,AppConfigurationDiff - Trackers —
TrackerSyncHelpers(RunParseAsync,RunParseAllTaskAsync,RunParseLatestAsync); all 17*SyncServicemigrated
Post-refactor cleanup
Models.TorrentInfo→MasterDbShard(master index metadata;Models.Api.TorrentInfounchanged)ConfigSaveRequest→Models/ConfigSaveRequest.csLostfilmParser→ partial classes; Rutracker / Toloka / NNMClub#region→ private methods- Minimal hosting:
Startup.csremoved, wiring inProgram.cs(WebApplication) SyncControllerdebugConsole.WriteLine→JacRedLog- IDE0005:
.editorconfig+EnforceCodeStyleInBuild; 64 files — redundantusingremoved
Full Changelog: 3.0.0...3.1.0