Robert Dailey
9852203814
refactor: Fix variable naming in service cache
1 year ago
Robert Dailey
cb0ed50359
refactor: Remove redundant class bodies in solution
1 year ago
Robert Dailey
6811706b2f
refactor: Convert all class constructors to primary
1 year ago
Robert Dailey
8d6a5984fe
build: Upgrade to .NET 8 in ci, docs, and build
1 year ago
Robert Dailey
7dbcc6b8f7
build: Upgrade all nuget packages
1 year ago
Robert Dailey
a8224d97d8
refactor: Upgrade to Flurl 4.0-pre5
...
This required significant changes in how Flurl Client configuration and
creation takes place.
1 year ago
Robert Dailey
43f67608bd
build: Upgrade all nuget packages
1 year ago
Robert Dailey
6452cf8a40
fix: Put sonarr version for naming in own column
...
In order to avoid confusion, the `v3` and `v4` version indicators for
certain naming format keys has been moved to their own column in the
`list` command table.
1 year ago
Robert Dailey
02d19c609b
fix: Match categories by file without extension
...
File name comparisons using the markdown table anchor link was broken
because the extension (`.json`) was not stripped from the file name.
1 year ago
Robert Dailey
9f349d674a
fix: Handle ServiceIncompatibilityException
...
So that the application doesn't immediately exit
1 year ago
Robert Dailey
a1af9f2d78
build: Upgrade all nuget packages
1 year ago
Robert Dailey
f5c659d772
refactor: Remove custom FlurlClientFactory
...
Instead, expand the ServarrRequestBuilder service class to utilize a
built-in client factory to manage handing out clients.
1 year ago
Robert Dailey
f554882aab
fix: Do not delete unwanted qualities from groups
1 year ago
Robert Dailey
aa1e658c70
fix: Flatten unwanted quality groups with less than 2 items
1 year ago
Robert Dailey
010b5f9513
fix: Add QP validation for groups with less than 2 qualities
1 year ago
Robert Dailey
8060096ba8
refactor: Do not attempt to log HTTP body if empty
1 year ago
Robert Dailey
d0ff537d06
fix: Sync file naming even if rename is not true
1 year ago
Robert Dailey
38a6f32eaf
fix: Escape markup in strings printed during naming preview
...
Fixes #216
1 year 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.
1 year ago
Robert Dailey
790a0952a5
refactor: Rename `format` to `standard` for Radarr media naming
1 year ago
Robert Dailey
8b2b1302c6
fix: Do not render repo update status when `--raw` is used
...
Fixes #215
1 year ago
Robert Dailey
acd9b3ec75
feat: CLI command to list media naming formats
1 year ago
Robert Dailey
5a60747a66
chore: Delete a bunch of unused run configurations
1 year ago
Robert Dailey
13b8e5679e
feat: Naming Sync
...
Fixes #179
1 year ago
Robert Dailey
bc485a8ac2
refactor: Reorganize and rename ServarrApi classes
1 year ago
Robert Dailey
5ed9b8f1ee
style: Solution-wide code cleanup
1 year ago
Robert Dailey
4a5e42eb93
refactor: Fix Recyclarr.Gui project
1 year ago
Robert Dailey
a4cfa4706d
refactor: More TrashLib splitting
1 year ago
Robert Dailey
0b31352c3c
refactor: use Flurl's own IFlurlClientFactory
1 year ago
Robert Dailey
aae8897250
refactor: Split API code into own project
1 year ago
Robert Dailey
9ede5125bf
refactor: Split up TrashLib into more projects
1 year ago
Robert Dailey
3a7fba2980
refactor: Remove remnants of RP v1 support
1 year ago
Robert Dailey
0106bc5111
fix: Do not write null values to service JSON data
1 year ago
Robert Dailey
4f5946bc67
fix: Parse error messages from service with title & errors list
1 year ago
Robert Dailey
0afe1ee005
build: Remove FluentAssertions.Json package
1 year ago
Robert Dailey
ec7516d6a6
refactor: Replace Newtonsoft.Json with System.Text.Json
1 year ago
Robert Dailey
5c7cc8d829
refactor!: Remove old reset_unmatched_scores syntax support
...
Relates to #202
1 year 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 .
1 year ago
Robert Dailey
b6de1bf97e
refactor!: Remove support for older versions of Sonarr
...
New minimum version is `3.0.9.1549`.
1 year ago
Robert Dailey
19849b33b4
build: Upgrade NUnit3 analyzer package
1 year ago
Robert Dailey
9d351f99ed
fix: Merge CFs using Replace instead of Add
1 year ago
Robert Dailey
03a84e099c
fix: Relax validation rules for custom format configuration
1 year ago
Robert Dailey
08db62ee8c
fix: Remove log that prints CFs without scores
1 year ago
Robert Dailey
e0913c7a4f
style: Solution-wide code cleanup
1 year 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.
1 year ago
Robert Dailey
63591edeb5
refactor: Rename x,y vars to a,b
1 year ago
Robert Dailey
58b59c4a62
fix: Print information about HTTP 401
1 year ago
Robert Dailey
1411eb69bc
refactor: Use raw string for default settings content
1 year ago
Robert Dailey
778abe96dc
refactor: Remove settings-specific context error msgs
1 year ago
Robert Dailey
91d1dbbbeb
build: Upgrade NSubstitute
1 year ago
Robert Dailey
76d4d9fbcb
build: Remove empty csproj folders
1 year ago
Robert Dailey
8d63737078
test: Fix broken exception handler tests
1 year ago
Robert Dailey
7f332406f1
fix: Better wording for logs containing remote service error msgs
1 year ago
Robert Dailey
9a26348d26
fix: Properly sync IncludeCustomFormatWhenRenaming
1 year ago
Robert Dailey
93c8de9739
fix: Print score instead of object
1 year ago
Robert Dailey
9995572314
fix: Propagate base_url and api_key when processing includes
1 year ago
Robert Dailey
537defbfe3
build: Upgrade Automapper Autofac library to stable version
1 year ago
Robert Dailey
e7bd06eb61
chore: Delete unwanted run configurations
1 year ago
Robert Dailey
f905b251dc
refactor: Remove unneeded FileName property
1 year ago
Robert Dailey
1aaa2747b8
fix: Move detailed CF output to debug logs
1 year 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.
1 year ago
Robert Dailey
82cbfb3741
refactor: Separate JSON loading from CFs
1 year ago
Robert Dailey
016bcb6624
refactor: Centralize JSON serializer settings
1 year ago
Robert Dailey
8f267483a2
feat: Add list command for template includes
1 year ago
Robert Dailey
5bb2bfa8a0
feat: YAML includes
...
Fixes #175
1 year ago
Robert Dailey
175aa6733b
refactor: Reorganize config list command code
...
This is in preparation for changes to list template includes
1 year ago
Robert Dailey
3e86172831
refactor: Remove unneeded NotImplementedException
1 year ago
Robert Dailey
542b24baa4
build: Upgrade FluentAssertions.Analyzers
1 year ago
Robert Dailey
ef8ae7dd48
refactor: Centralize repo updating
...
Repo updating is also a little more robust now.
1 year ago
Robert Dailey
b5c49d81c5
test: Suppress NSubstitute NS5000
...
Reason: https://github.com/nsubstitute/NSubstitute.Analyzers/issues/211
1 year ago
Robert Dailey
38755aa81a
refactor: Remove System.IO.Abstractions.Extension namespace usage
1 year ago
Robert Dailey
bda8dabd01
build: Upgrade all nuget packages
1 year ago
Robert Dailey
6ac1f0a1f0
chore: Exclude all but CS files in SonarLint
1 year ago
Robert Dailey
06cdd992e9
chore: Add SonarLint settings for Rider
1 year ago
Robert Dailey
740f775aeb
build: Remove SonarAnalyzer.CSharp package
1 year ago
Robert Dailey
bede64eadd
refactor: Rework ConfigCreation unit tests
1 year 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.
1 year ago
Robert Dailey
6706a87972
test: Relocate & rename config extensions test
1 year ago
Robert Dailey
3255dc68eb
test: Fix broken unit test after scoreless CF changes
1 year ago
Robert Dailey
b409dd7c2d
build: Globally use package SonarAnalyzer.CSharp
1 year ago
Robert Dailey
f52d73cdaf
fix: Less verbose logging for scoreless CFs
1 year ago
Robert Dailey
0b82c3bea3
fix: Better processing for HTTP 500 service responses
...
Fixes #206 .
1 year 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.
1 year ago
Robert Dailey
aaf810fd68
feat: Print completed date & time after each instance sync
1 year ago
Robert Dailey
4d7a5f49c3
fix: NRE when `reset_unmatched_scores` not present
1 year ago
Robert Dailey
3f5960c414
feat: Add score sets and raw output to list custom-formats
1 year 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.
1 year 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.
1 year ago
Robert Dailey
4935377a4b
refactor: Remove GetOrDefault method
...
Replaced with .NET's `GetValueOrDefault()`
1 year ago
Robert Dailey
c4bd5b2fae
style: Solution-wide code cleanup to CS files
1 year 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.
1 year ago
Robert Dailey
c033dd8a13
refactor: Change structure of processed QP object
1 year ago
Robert Dailey
de0c6be1d9
fix: Move log context up to ConfigurationLoader
...
This allows log context to be available when validation warnings &
errors are printed.
1 year ago
Robert Dailey
4b3542fc7a
fix: Add a check for Sonarr v3 in the delete CFs command
1 year ago
Robert Dailey
f6465316d2
feat: New delete custom-formats command
...
For deleting one or many custom formats from a specific Sonarr or Radarr
service.
1 year 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.
1 year ago
Robert Dailey
3ac1de9c94
refactor: Rename placement argument for service
1 year ago
Robert Dailey
c713b99747
refactor: Make out variables inline
1 year ago
Robert Dailey
c9d015f492
test: Fix newline insertion in MockYaml method
1 year 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.
1 year ago