You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr.TrashLib/Services/QualitySize/Guide/QualityGuideService.cs

40 lines
1.3 KiB

using Recyclarr.TrashLib.Config;
using Recyclarr.TrashLib.Repo;
namespace Recyclarr.TrashLib.Services.QualitySize.Guide;
public class QualityGuideService : IQualityGuideService
{
private readonly IRepoMetadataBuilder _metadataBuilder;
private readonly QualitySizeGuideParser _parser;
public QualityGuideService(
IRepoMetadataBuilder metadataBuilder,
QualitySizeGuideParser parser)
{
_metadataBuilder = metadataBuilder;
_parser = parser;
}
private QualitySizePaths CreatePaths(SupportedServices serviceType)
{
var metadata = _metadataBuilder.GetMetadata();
return serviceType switch
{
SupportedServices.Radarr => new QualitySizePaths(
_metadataBuilder.ToDirectoryInfoList(metadata.JsonPaths.Radarr.Qualities)
),
SupportedServices.Sonarr => new QualitySizePaths(
_metadataBuilder.ToDirectoryInfoList(metadata.JsonPaths.Sonarr.Qualities)
),
_ => throw new ArgumentOutOfRangeException(nameof(serviceType), serviceType, null)
};
}
public IReadOnlyList<QualitySizeData> GetQualitySizeData(SupportedServices serviceType)
{
var paths = CreatePaths(serviceType);
return _parser.GetQualities(paths.QualitySizeDirectories);
}
}