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.
40 lines
1.3 KiB
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);
|
|
}
|
|
}
|