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.
44 lines
1.7 KiB
44 lines
1.7 KiB
using Recyclarr.Cli.Pipelines.Generic;
|
|
using Recyclarr.Config.Models;
|
|
using Recyclarr.ServarrApi.MediaNaming;
|
|
|
|
namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases;
|
|
|
|
public class MediaNamingTransactionPhase : ITransactionPipelinePhase<MediaNamingPipelineContext>
|
|
{
|
|
public void Execute(MediaNamingPipelineContext context, IServiceConfiguration config)
|
|
{
|
|
context.TransactionOutput = context.ApiFetchOutput switch
|
|
{
|
|
RadarrMediaNamingDto dto => UpdateRadarrDto(dto, context.ConfigOutput),
|
|
SonarrMediaNamingDto dto => UpdateSonarrDto(dto, context.ConfigOutput),
|
|
_ => throw new ArgumentException("Config type not supported in media naming transation phase")
|
|
};
|
|
}
|
|
|
|
private static RadarrMediaNamingDto UpdateRadarrDto(RadarrMediaNamingDto serviceDto, ProcessedNamingConfig config)
|
|
{
|
|
var configDto = (RadarrMediaNamingDto) config.Dto;
|
|
return serviceDto with
|
|
{
|
|
RenameMovies = configDto.RenameMovies,
|
|
MovieFolderFormat = configDto.MovieFolderFormat,
|
|
StandardMovieFormat = configDto.StandardMovieFormat
|
|
};
|
|
}
|
|
|
|
private static SonarrMediaNamingDto UpdateSonarrDto(SonarrMediaNamingDto serviceDto, ProcessedNamingConfig config)
|
|
{
|
|
var configDto = (SonarrMediaNamingDto) config.Dto;
|
|
return serviceDto with
|
|
{
|
|
RenameEpisodes = configDto.RenameEpisodes,
|
|
SeriesFolderFormat = configDto.SeriesFolderFormat,
|
|
SeasonFolderFormat = configDto.SeasonFolderFormat,
|
|
StandardEpisodeFormat = configDto.StandardEpisodeFormat,
|
|
DailyEpisodeFormat = configDto.DailyEpisodeFormat,
|
|
AnimeEpisodeFormat = configDto.AnimeEpisodeFormat
|
|
};
|
|
}
|
|
}
|