Robert Dailey
38a6f32eaf
fix: Escape markup in strings printed during naming preview
...
Fixes #216
8 months ago
Robert Dailey
8bf205f171
fix: Properly rethrow non-deterministic exceptions
...
Doing `throw <myExceptionVariable>` causes the stack trace information
to be rewritten (we don't want this). Wrapping in a new exception object
like `AggregateException` fixes that but also makes the printed
exception look messier.
Instead, simply return a bool to indicate if `HandleException()`
processed the the exception; if not, then we can rethrow from outside
the method.
8 months ago
Robert Dailey
790a0952a5
refactor: Rename `format` to `standard` for Radarr media naming
8 months ago
Robert Dailey
8b2b1302c6
fix: Do not render repo update status when `--raw` is used
...
Fixes #215
8 months ago
Robert Dailey
acd9b3ec75
feat: CLI command to list media naming formats
8 months ago
Robert Dailey
5a60747a66
chore: Delete a bunch of unused run configurations
8 months ago
Robert Dailey
13b8e5679e
feat: Naming Sync
...
Fixes #179
8 months ago
Robert Dailey
bc485a8ac2
refactor: Reorganize and rename ServarrApi classes
8 months ago
Robert Dailey
5ed9b8f1ee
style: Solution-wide code cleanup
8 months ago
Robert Dailey
4a5e42eb93
refactor: Fix Recyclarr.Gui project
8 months ago
Robert Dailey
a4cfa4706d
refactor: More TrashLib splitting
8 months ago
Robert Dailey
0b31352c3c
refactor: use Flurl's own IFlurlClientFactory
8 months ago
Robert Dailey
aae8897250
refactor: Split API code into own project
8 months ago
Robert Dailey
9ede5125bf
refactor: Split up TrashLib into more projects
8 months ago
Robert Dailey
3a7fba2980
refactor: Remove remnants of RP v1 support
8 months ago
Robert Dailey
0106bc5111
fix: Do not write null values to service JSON data
8 months ago
Robert Dailey
4f5946bc67
fix: Parse error messages from service with title & errors list
8 months ago
Robert Dailey
0afe1ee005
build: Remove FluentAssertions.Json package
8 months ago
Robert Dailey
ec7516d6a6
refactor: Replace Newtonsoft.Json with System.Text.Json
8 months ago
Robert Dailey
5c7cc8d829
refactor!: Remove old reset_unmatched_scores syntax support
...
Relates to #202
8 months ago
Robert Dailey
1bbafa6386
refactor!: Remove support for old cache directories
...
Old cache directories previously included the instance name in the hash
generation. Code to support migration from this old path has been
removed.
Relates to #202 .
8 months ago
Robert Dailey
b6de1bf97e
refactor!: Remove support for older versions of Sonarr
...
New minimum version is `3.0.9.1549`.
8 months ago
Robert Dailey
19849b33b4
build: Upgrade NUnit3 analyzer package
8 months ago
Robert Dailey
9d351f99ed
fix: Merge CFs using Replace instead of Add
8 months ago
Robert Dailey
03a84e099c
fix: Relax validation rules for custom format configuration
8 months ago
Robert Dailey
08db62ee8c
fix: Remove log that prints CFs without scores
8 months ago
Robert Dailey
e0913c7a4f
style: Solution-wide code cleanup
8 months ago
Robert Dailey
987d599e1c
fix: QP Qualities are now a Replace instead of Add
...
Qualities are very high-stakes: They are error prone to modify across
multiple configuration files. The user is not able to control ordering
that way. To reduce the chances of users shooting themselves in the
foot, we only allow 1 file to uniformly set qualities.
8 months ago
Robert Dailey
63591edeb5
refactor: Rename x,y vars to a,b
8 months ago
Robert Dailey
58b59c4a62
fix: Print information about HTTP 401
8 months ago
Robert Dailey
1411eb69bc
refactor: Use raw string for default settings content
8 months ago
Robert Dailey
778abe96dc
refactor: Remove settings-specific context error msgs
8 months ago
Robert Dailey
91d1dbbbeb
build: Upgrade NSubstitute
8 months ago
Robert Dailey
76d4d9fbcb
build: Remove empty csproj folders
8 months ago
Robert Dailey
8d63737078
test: Fix broken exception handler tests
8 months ago
Robert Dailey
7f332406f1
fix: Better wording for logs containing remote service error msgs
8 months ago
Robert Dailey
9a26348d26
fix: Properly sync IncludeCustomFormatWhenRenaming
8 months ago
Robert Dailey
93c8de9739
fix: Print score instead of object
8 months ago
Robert Dailey
9995572314
fix: Propagate base_url and api_key when processing includes
8 months ago
Robert Dailey
537defbfe3
build: Upgrade Automapper Autofac library to stable version
8 months ago
Robert Dailey
e7bd06eb61
chore: Delete unwanted run configurations
8 months ago
Robert Dailey
f905b251dc
refactor: Remove unneeded FileName property
8 months ago
Robert Dailey
1aaa2747b8
fix: Move detailed CF output to debug logs
8 months ago
Robert Dailey
159861aaeb
refactor: Split Recyclarr.TrashLib project
...
Split into Config and Guide class library projects to help decouple and
componentize the TrashLib library, which is growing too big.
8 months ago
Robert Dailey
82cbfb3741
refactor: Separate JSON loading from CFs
8 months ago
Robert Dailey
016bcb6624
refactor: Centralize JSON serializer settings
8 months ago
Robert Dailey
8f267483a2
feat: Add list command for template includes
8 months ago
Robert Dailey
5bb2bfa8a0
feat: YAML includes
...
Fixes #175
8 months ago
Robert Dailey
175aa6733b
refactor: Reorganize config list command code
...
This is in preparation for changes to list template includes
9 months ago
Robert Dailey
3e86172831
refactor: Remove unneeded NotImplementedException
9 months ago
Robert Dailey
542b24baa4
build: Upgrade FluentAssertions.Analyzers
9 months ago
Robert Dailey
ef8ae7dd48
refactor: Centralize repo updating
...
Repo updating is also a little more robust now.
9 months ago
Robert Dailey
b5c49d81c5
test: Suppress NSubstitute NS5000
...
Reason: https://github.com/nsubstitute/NSubstitute.Analyzers/issues/211
9 months ago
Robert Dailey
38755aa81a
refactor: Remove System.IO.Abstractions.Extension namespace usage
9 months ago
Robert Dailey
bda8dabd01
build: Upgrade all nuget packages
9 months ago
Robert Dailey
6ac1f0a1f0
chore: Exclude all but CS files in SonarLint
9 months ago
Robert Dailey
06cdd992e9
chore: Add SonarLint settings for Rider
9 months ago
Robert Dailey
740f775aeb
build: Remove SonarAnalyzer.CSharp package
9 months ago
Robert Dailey
bede64eadd
refactor: Rework ConfigCreation unit tests
9 months ago
Robert Dailey
3a50b9fa61
fix: Add validation for duplicate instances
...
Two separate duplicate checks have been introduced:
1. Within the same YAML file, YamlDotNet has been instructed to error on
duplicate keys.
2. Between different YAML files, custom logic enforces that there should
be no duplicate instance names.
9 months ago
Robert Dailey
6706a87972
test: Relocate & rename config extensions test
9 months ago
Robert Dailey
3255dc68eb
test: Fix broken unit test after scoreless CF changes
9 months ago
Robert Dailey
b409dd7c2d
build: Globally use package SonarAnalyzer.CSharp
9 months ago
Robert Dailey
f52d73cdaf
fix: Less verbose logging for scoreless CFs
9 months ago
Robert Dailey
0b82c3bea3
fix: Better processing for HTTP 500 service responses
...
Fixes #206 .
9 months ago
Robert Dailey
372fd804fe
refactor: Replace TestCorrelator with Observable sink
...
This replacement is necessary to support parallelized unit tests.
TestCorrelator as well as even the InMemory sink rely on static objects,
which makes multithreaded tests impossible.
9 months ago
Robert Dailey
aaf810fd68
feat: Print completed date & time after each instance sync
9 months ago
Robert Dailey
4d7a5f49c3
fix: NRE when `reset_unmatched_scores` not present
9 months ago
Robert Dailey
3f5960c414
feat: Add score sets and raw output to list custom-formats
9 months ago
Robert Dailey
4f52201ede
feat: Support for "score sets" in quality profiles
...
A score set is a collection of scores defined by a single custom format
JSON data file in the TRaSH Guides. Score sets provide a way to define
"themes" for scores that get used across multiple custom formats.
This feature adds the `score_sets` property to the top-level
`quality_profiles` objects.
9 months ago
Robert Dailey
f9ba985d1f
fix: Grab scores from the `trash_scores` object in CF json data
...
The `default` key is assigned a score intended to replace the old
`trash_score` property.
9 months ago
Robert Dailey
4935377a4b
refactor: Remove GetOrDefault method
...
Replaced with .NET's `GetValueOrDefault()`
9 months ago
Robert Dailey
c4bd5b2fae
style: Solution-wide code cleanup to CS files
9 months ago
Robert Dailey
8b350b5bce
feat: Add exclusions support to 'reset_unmatched_scores'
...
A new `except` property is provided under `reset_unmatched_scores` to
list one or more custom format names to exclude when resetting scores.
9 months ago
Robert Dailey
c033dd8a13
refactor: Change structure of processed QP object
9 months ago
Robert Dailey
de0c6be1d9
fix: Move log context up to ConfigurationLoader
...
This allows log context to be available when validation warnings &
errors are printed.
9 months ago
Robert Dailey
4b3542fc7a
fix: Add a check for Sonarr v3 in the delete CFs command
9 months ago
Robert Dailey
f6465316d2
feat: New delete custom-formats command
...
For deleting one or many custom formats from a specific Sonarr or Radarr
service.
9 months ago
Robert Dailey
a84c8a0efc
refactor: Improve service connection error message
...
When unable to connect to a service, we no longer send a confusing
message saying capabilities could not be obtained. This also involved
removing nullability in a few places to simplify logic an error
handling.
9 months ago
Robert Dailey
3ac1de9c94
refactor: Rename placement argument for service
9 months ago
Robert Dailey
c713b99747
refactor: Make out variables inline
9 months ago
Robert Dailey
c9d015f492
test: Fix newline insertion in MockYaml method
9 months ago
Robert Dailey
0f88f2a306
fix: Detect & fail on split instance config files
...
When the same `base_url` is used between two or more config files, this
is an error the user must fix manually.
9 months ago
Robert Dailey
58861a4edd
build: Upgrade all nuget packages
9 months ago
Robert Dailey
b79a71a1cf
test: Fix broken tests due to mistakenly removed whitespace
9 months ago
Robert Dailey
c190d5e6d6
refactor: Use raw string literals for multi-line strings
9 months ago
Robert Dailey
d6fc96f247
fix: Allow quality group names to duplicate quality names.
...
Fixes #200
9 months ago
Robert Dailey
e6924c10e4
fix: Better error message when no config files are found
9 months ago
Robert Dailey
028f9be125
refactor: Remove TODO comment
...
This is in favor of a TODO item put in issue #202
9 months ago
Robert Dailey
a6e737fae9
fix: Improve repo clone performance by using shallow clones
...
Fixes #201 .
9 months ago
Robert Dailey
01fdc0639f
fix: Output more detail about HTTP 4xx "bad data" responses
10 months ago
Robert Dailey
aa8140add4
refactor: Print more information about QP updates
10 months ago
Robert Dailey
e0da419ffa
refactor: Address several analysis warnings
10 months ago
Robert Dailey
def934ebeb
refactor: Upgrade FileSystem to remove hack
...
This version of `System.IO.Abstractions` adds constructor options to
`MockFileSystem` that allows the removal of a hack put in place to
remove the temp directory so it does not interfere with unit test
expectations.
10 months ago
Robert Dailey
a6ceae65fc
refactor: Add SonarCloud Analyzer and fix analysis warnings
10 months ago
Robert Dailey
8596168757
feat: Add Allowed flag for QP upgrades
10 months ago
Robert Dailey
0652cfd800
fix: More robust handling of missing qualities list
...
When qualities are not specified by the user, qualities are not modified
if the profile exists in the service. If the profile does not exist yet,
then an error is shown. Qualities are required when the profile is being
created.
10 months ago
Robert Dailey
f40339e794
style: Code cleanup
10 months ago
Robert Dailey
1d7abb3977
refactor: Fix analysis warnings
10 months ago
Robert Dailey
ade5ee72b2
fix: Cutoff set properly when disabling upgrades
...
The `qualityprofile` API still performs validation on `cutoff` even when
`upgradeAllowed` is set to `false`. Because of this, we must still set
`cutoff` even if the user didn't specify `upgrade_allowed` and
`until_quality` in their configs. We do so by finding the first item in
the Items list, regardless of what that is. This fixes the HTTP 400 we
get when invoking the API with a `null` value for `cutoff`.
10 months ago