mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
feat: Fork octo-fiestarr as allstarr with Jellyfin proxy improvements
Major changes: - Rename project from octo-fiesta to allstarr - Add Jellyfin proxy support alongside Subsonic/Navidrome - Implement fuzzy search with relevance scoring and Levenshtein distance - Add POST body logging for debugging playback progress issues - Separate local and external artists in search results - Add +5 score boost for external results to prioritize larger catalog(probably gonna reverse it) - Create FuzzyMatcher utility for intelligent search result scoring - Add ConvertPlaylistToJellyfinItem method for playlist support - Rename keys folder to apis and update gitignore - Filter search results by relevance score (>= 40) - Add Redis caching support with configurable settings - Update environment configuration with backend selection - Improve external provider integration (SquidWTF, Deezer, Qobuz) - Add tests for all services
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using Microsoft.Extensions.Options;
|
||||
using allstarr.Models.Settings;
|
||||
|
||||
namespace allstarr.Services.Validation;
|
||||
|
||||
/// <summary>
|
||||
/// Orchestrates startup validation for all configured services.
|
||||
/// This replaces the old StartupValidationService with a more extensible architecture.
|
||||
/// </summary>
|
||||
public class StartupValidationOrchestrator : IHostedService
|
||||
{
|
||||
private readonly IEnumerable<IStartupValidator> _validators;
|
||||
private readonly IOptions<SubsonicSettings> _subsonicSettings;
|
||||
|
||||
public StartupValidationOrchestrator(
|
||||
IEnumerable<IStartupValidator> validators,
|
||||
IOptions<SubsonicSettings> subsonicSettings)
|
||||
{
|
||||
_validators = validators;
|
||||
_subsonicSettings = subsonicSettings;
|
||||
}
|
||||
|
||||
public async Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("========================================");
|
||||
Console.WriteLine(" allstarr starting up... ");
|
||||
Console.WriteLine("========================================");
|
||||
Console.WriteLine();
|
||||
|
||||
// Run all validators
|
||||
foreach (var validator in _validators)
|
||||
{
|
||||
try
|
||||
{
|
||||
await validator.ValidateAsync(cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Error validating {validator.ServiceName}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("========================================");
|
||||
Console.WriteLine(" Startup validation complete ");
|
||||
Console.WriteLine("========================================");
|
||||
Console.WriteLine();
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user