Keeps Radarr/Sonarr quality upgrades out of "Recently Added" by keeping a ledger of the first date added per logical medium (movie or episode, identified by provider ids and the series) and restoring it on upgrades. - core logic without Jellyfin types (Reconciler, MediaKeys, GuardProcessor) - thread-safe ledger with atomic, debounced persistence - event processing via channel and background worker, seed on first start - scheduled task "Ledger synchronisieren", status API, configuration page - xUnit tests and a Jellyfin 12.2 integration test - Gitea workflows: build/test, release with jprm and manifest branch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
2.0 KiB
INI
56 lines
2.0 KiB
INI
root = true
|
|
|
|
[*]
|
|
charset = utf-8
|
|
end_of_line = lf
|
|
indent_style = space
|
|
indent_size = 4
|
|
insert_final_newline = true
|
|
trim_trailing_whitespace = true
|
|
|
|
[*.{yml,yaml,json,xml,csproj,props,slnx}]
|
|
indent_size = 2
|
|
|
|
[*.md]
|
|
trim_trailing_whitespace = false
|
|
|
|
[*.cs]
|
|
# Layout
|
|
csharp_style_namespace_declarations = file_scoped:warning
|
|
csharp_using_directive_placement = outside_namespace:warning
|
|
dotnet_sort_system_directives_first = true
|
|
csharp_new_line_before_open_brace = all
|
|
csharp_prefer_braces = true:warning
|
|
csharp_style_expression_bodied_methods = when_on_single_line:silent
|
|
csharp_style_expression_bodied_properties = true:silent
|
|
|
|
# var only where the type is apparent
|
|
csharp_style_var_for_built_in_types = false:silent
|
|
csharp_style_var_when_type_is_apparent = true:silent
|
|
csharp_style_var_elsewhere = true:silent
|
|
|
|
# Naming: private fields are _camelCase, constants PascalCase
|
|
dotnet_naming_rule.private_fields_underscore.symbols = private_fields
|
|
dotnet_naming_rule.private_fields_underscore.style = underscore_camel
|
|
dotnet_naming_rule.private_fields_underscore.severity = warning
|
|
dotnet_naming_symbols.private_fields.applicable_kinds = field
|
|
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
|
|
dotnet_naming_style.underscore_camel.required_prefix = _
|
|
dotnet_naming_style.underscore_camel.capitalization = camel_case
|
|
|
|
dotnet_naming_rule.constants_pascal.symbols = constants
|
|
dotnet_naming_rule.constants_pascal.style = pascal
|
|
dotnet_naming_rule.constants_pascal.severity = warning
|
|
dotnet_naming_symbols.constants.applicable_kinds = field
|
|
dotnet_naming_symbols.constants.required_modifiers = const
|
|
dotnet_naming_style.pascal.capitalization = pascal_case
|
|
|
|
# Code style enforced in the build
|
|
dotnet_diagnostic.IDE0005.severity = warning
|
|
dotnet_diagnostic.IDE0161.severity = warning
|
|
dotnet_diagnostic.IDE0011.severity = warning
|
|
|
|
# Logging is event-driven and low-volume (like in Jellyfin itself); LoggerMessage delegates would only add noise.
|
|
dotnet_diagnostic.CA1848.severity = none
|
|
dotnet_diagnostic.CA1873.severity = none
|