From 37ad6fed55a3b4e17a75ee91d53920e22eb1be58 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Wed, 24 Aug 2022 19:36:53 -0500 Subject: [PATCH] feat(sonarr): New --list-qualities argument For listing quality definition types in the guide. --- CHANGELOG.md | 3 ++- src/Recyclarr/Command/SonarrCommand.cs | 10 ++++++++++ .../Services/Sonarr/ISonarrGuideDataLister.cs | 1 + .../Services/Sonarr/SonarrGuideDataLister.cs | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cfc6d5f..ed9c3bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Radarr: New `--list-qualities` argument to get a list of quality definition types from the guide. +- New `--list-qualities` argument for `sonarr` and `radarr` subcommands that may be used to get a + list of quality definition types from the guide. ### Changed diff --git a/src/Recyclarr/Command/SonarrCommand.cs b/src/Recyclarr/Command/SonarrCommand.cs index d45da57a..7c3a7c23 100644 --- a/src/Recyclarr/Command/SonarrCommand.cs +++ b/src/Recyclarr/Command/SonarrCommand.cs @@ -26,6 +26,10 @@ public class SonarrCommand : ServiceCommand "Note that not every release profile has terms that may be filtered.")] public string? ListTerms { get; [UsedImplicitly] set; } = "empty"; + [CommandOption("list-qualities", Description = + "List available quality definition types from the guide.")] + public bool ListQualities { get; [UsedImplicitly] set; } + public override string Name => "Sonarr"; public override async Task Process(IServiceLocatorProxy container) @@ -44,6 +48,12 @@ public class SonarrCommand : ServiceCommand return; } + if (ListQualities) + { + lister.ListQualities(); + return; + } + if (ListTerms != "empty") { if (!string.IsNullOrEmpty(ListTerms)) diff --git a/src/TrashLib/Services/Sonarr/ISonarrGuideDataLister.cs b/src/TrashLib/Services/Sonarr/ISonarrGuideDataLister.cs index 60018a70..94c04c21 100644 --- a/src/TrashLib/Services/Sonarr/ISonarrGuideDataLister.cs +++ b/src/TrashLib/Services/Sonarr/ISonarrGuideDataLister.cs @@ -4,4 +4,5 @@ public interface ISonarrGuideDataLister { void ListReleaseProfiles(); void ListTerms(string releaseProfileId); + void ListQualities(); } diff --git a/src/TrashLib/Services/Sonarr/SonarrGuideDataLister.cs b/src/TrashLib/Services/Sonarr/SonarrGuideDataLister.cs index e83ef215..64e11146 100644 --- a/src/TrashLib/Services/Sonarr/SonarrGuideDataLister.cs +++ b/src/TrashLib/Services/Sonarr/SonarrGuideDataLister.cs @@ -1,6 +1,7 @@ using System.Text; using CliFx.Infrastructure; using JetBrains.Annotations; +using MoreLinq; using Serilog; using TrashLib.Services.Sonarr.ReleaseProfile; using TrashLib.Services.Sonarr.ReleaseProfile.Guide; @@ -86,4 +87,17 @@ public class SonarrGuideDataLister : ISonarrGuideDataLister _console.Output.WriteLine(); } + + public void ListQualities() + { + _console.Output.WriteLine("\nList of Quality Definition types in the TRaSH Guides:\n"); + + _guide.GetQualities() + .Select(x => x.Type) + .ForEach(x => _console.Output.WriteLine($" - {x}")); + + _console.Output.WriteLine( + "\nThe above quality definition types can be used with the `quality_definition:` property in your " + + "recyclarr.yml file."); + } }