Robert Dailey
71f4823ff4
refactor: Utilize lifetime scopes for operating on instances
...
To simplify logic in the system, a child lifetime scope is created for
each distinct configuration instance that is processed by Recyclarr. The
main driver for this is to avoid objects being reused between instances
and thus needing setup & teardown logic to deal with state.
8 months ago
Robert Dailey
207d3aaf97
refactor: Remove ILogJanitor
...
Don't need an interface for this
8 months ago
Robert Dailey
eb5b34f5cd
refactor: Move app path creation to DefaultAppDataSetup
8 months ago
Robert Dailey
1963ef09b1
refactor: Remove DI hacks and workarounds for Spectre.Console
8 months ago
Robert Dailey
8bca7111c4
feat: Introduce new includes dir for include templates
...
The prior method of supporting local include templates (files in
subdirectories under the `configs` directory) is deprecated.
9 months ago
Robert Dailey
b77f2a5919
refactor: Replace SubDir with SubDirectory from IFileSystem
...
Multiple path fragments are now supported in the built-in
`SubDirectory()` extension method, so there's no longer a need for the
custom `SubDir()` version.
9 months ago
Robert Dailey
6a848b50c3
refactor: Move SupportedServices to the TrashGuide project
...
It was previously located in Common, which I'm trying to gradually get
rid of. Supported services are ultimately determined by what is in the
guide, so that seems like the best place for it.
9 months ago
Robert Dailey
8f3c0a7b6b
refactor: Upgrade to SuperLinq v6.0.0
...
Some code changes required.
9 months ago
Robert Dailey
a1be77f800
refactor: Move HTTP-specific code to its own project
10 months ago
Robert Dailey
c6fe122d84
fix: Media naming works again for Sonarr v4
...
The removal of Sonarr v3 support (commit d45563cf
) introduced a bug
resulting in media naming no longer working due to the `:4` key suffix
not being checked anymore.
Additionally, there were some tests under `src/tests/` that needed to be
moved to `tests/`. One of these tests in particular helped identify this
bug. Those tests have been moved to the appropriate location.
10 months ago
Robert Dailey
921a4cd9eb
fix: CF sync stats print to console again
...
Share code between the LogPhase and PreviewPhase classes.
10 months ago
Robert Dailey
d45563cf1c
feat!: Remove Sonarr v3 Support
...
Includes complete removal of Release Profile support.
10 months ago
Robert Dailey
fe6eb40c6a
fix(cli): Do not display CFs with no trash IDs
...
Fixes #229
10 months ago
Robert Dailey
75a87707bf
refactor: Use collection expressions in a few places
10 months ago
Robert Dailey
92f7194aed
fix!: Remove automatic macos directory migration
...
This code existed as an attempt to avoid a major version bump as a
result of the .NET 8 upgrade. However, this just adds confusion. The
migration step is now required to perform the directory migration and
the details have been added to the v7.0 upgrade guide.
10 months ago
Robert Dailey
5731b3e14b
fix: Validate that base_url is well-formed
...
Fixes #221
1 year ago
Robert Dailey
a341c9f173
fix: Fix validation regression for base_url and api_key
...
Fixes #221
1 year ago
Robert Dailey
1fc041253e
fix: Do not run ForceEmptySequences on string types
...
This happens when there's an empty `base_url:` in YAML. It comes in as a
blank string.
1 year ago
Robert Dailey
258949c0aa
refactor: Upgrade Flurl to v4.0.0
...
Required refactoring the way before/after/redirect handlers were
implemented.
1 year ago
Robert Dailey
89a64ab01c
fix: Improve display of version number on CLI
1 year ago
Robert Dailey
1ab44f974c
fix: Better diagnostics for connectivity issues
1 year ago
Robert Dailey
29c75549fb
refactor: Fix formatting & analysis warnings
1 year ago
Robert Dailey
f4857c7050
refactor: Make custom format pipeline generic
1 year ago
Robert Dailey
b14787e471
refactor: Make quality profile pipeline generic
1 year ago
Robert Dailey
b6a53e497c
refactor: Make quality size pipeline generic
1 year ago
Robert Dailey
647e0280ec
refactor: Make release profile sync pipeline generic
1 year ago
Robert Dailey
5c27c6bf56
refactor: Make tags pipeline generic
1 year ago
Robert Dailey
532b954456
refactor: Generic pipelines support for media naming
1 year ago
Robert Dailey
55daad8db1
refactor: Strategy pattern for MediaNamingConfigPhase
1 year ago
Robert Dailey
cad281aefc
refactor: Fix analysis warning about unused member
1 year ago
Robert Dailey
e99f4cb766
refactor: Refactor cache logic
...
- `CustomFormatCache` is now a utility class for updating cache entries.
- `CustomFormatCacheData` is now what `CustomFormatCache` used to be
(data object used for serialization).
- `CustomFormatCachePersister` is now specific to custom formats. Future
cache types will have their own persister implementation.
1 year ago
Robert Dailey
f769c9669d
fix: Add app data dir migration step for OSX
1 year ago
Robert Dailey
31fa304983
build: Upgrade Flurl.Http to 4.0.0-pre6
1 year ago
Robert Dailey
be46b708a5
build: Replace Rider run configs with launch settings
1 year ago
Robert Dailey
90a0c931a0
build: Reorganize structure of tests
...
- `src/tests` moved to `tests`
- `src/Recyclarr.sln` moved to `Recyclarr.sln`
1 year ago
Robert Dailey
a4534bffcf
refactor: Upgrade all nuget packages
...
Also use the built-in snake case naming feature in System.Text.Json
1 year ago
Robert Dailey
a937de74cf
refactor: Fix several warnings related to .NET 8 updates
...
Also deleted ConfigurationException since it is unused.
1 year ago
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