Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1506 commits
Select commit Hold shift + click to select a range
4b5ff39
New: Check for available space before grabbing
markus101 Sep 15, 2024
71a1937
New: Add Bluray 576p quality
markus101 Sep 15, 2024
750a935
New: Add additional archive exentions
markus101 Sep 8, 2024
3c85713
Gotify notification updates
markus101 Sep 8, 2024
6cccacd
Add workflow to close issue when labelled as support
stevietv Sep 15, 2024
31bf9e3
New: Add rating as option in sort dropdown on series overviews and po…
stevietv Sep 15, 2024
97ebaf2
New: Use instance name in forms authentication cookie name
markus101 Sep 14, 2024
d84c450
New: Add exception to SSL Certificate validation message
markus101 Sep 14, 2024
9603f0b
Automated API Docs update
Sep 15, 2024
e6bd584
Multiple Translations updated by Weblate
weblate Sep 15, 2024
99fc520
Convert ClipboardButton to TypeScript
Treycos Sep 21, 2024
89d730c
Fixed: Links for Trakt and TVMaze in Gotify notifications
markus101 Sep 16, 2024
a73a5cc
Multiple Translations updated by Weblate
weblate Sep 19, 2024
85f53e8
New: Parse KCRT as release group
stevietv Sep 21, 2024
fca8c36
Guard against using invalid sort keys
mynameisbogdan Sep 21, 2024
3976e5d
Fixed: Interactive searches causing multiple requests to indexers
markus101 Sep 16, 2024
30c36fd
Fix description for API key as query parameter
momokli Sep 21, 2024
c9aa593
Add 'includeSeries' and 'includeEpisodeFile' to Episode API endpoint
ManiMatter Sep 21, 2024
9875e55
Fixed: Adding Bluray 576p to some profiles
markus101 Sep 16, 2024
4b72a0a
Fixed: Rejections for Custom Format score increment
markus101 Sep 16, 2024
ca38a9b
Fixed: Aggregating media files with 576p resolution
markus101 Sep 21, 2024
27da041
Fixed: Reprocessing manual import items unable to detect sample
markus101 Sep 17, 2024
0fa8e24
New: Fetch up to 1000 series from Plex Watchlist
mynameisbogdan Sep 17, 2024
faf9173
Fixed: Unable to login when instance name contained brackets
markus101 Sep 20, 2024
75fae92
Update src/Sonarr.Http/Authentication/AuthenticationBuilderExtensions.cs
markus101 Sep 20, 2024
c199fd0
Fixed: Don't set last write time on episode files if difference is wi…
markus101 Sep 20, 2024
106ffd4
New: Persist sort in Select Episodes modal
markus101 Sep 21, 2024
e196c1b
Automated API Docs update
Sep 21, 2024
be4a9e9
Multiple Translations updated by Weblate
weblate Sep 27, 2024
30a52d1
Fixed: Sorting queue by columns
mynameisbogdan Sep 22, 2024
4d7a3d0
New: Errors sending Telegram notifications when links aren't available
markus101 Sep 23, 2024
dc1524c
Fixed: Loading series images after placeholder in Safari
markus101 Sep 24, 2024
1030232
Fixed: Parsing of Hybrid-Remux as Remux
mynameisbogdan Sep 28, 2024
a7cb264
Fixed: Telegram log message including token
RobinDadswell Sep 28, 2024
8bf0298
Fix translation for Custom Colon Replacement label
mynameisbogdan Sep 25, 2024
768af43
Display naming example errors when all fields are empty
mynameisbogdan Sep 25, 2024
2f0ca42
New: Ignore '.DS_Store' and '.unmanic' files
mynameisbogdan Sep 28, 2024
4f0e1c5
Fixed: Don't reject revision upgrades if profile doesn't allow upgrades
markus101 Sep 27, 2024
6d0f10b
Fixed: Ignore extra spaces in path when not running on Windows
markus101 Sep 27, 2024
da610a1
New: Parse 'BEN THE MAN' release group
markus101 Sep 27, 2024
bc0fc62
Multiple Translations updated by Weblate
weblate Oct 6, 2024
6660db2
Recompare file size after import file if necessary
jaredledvina Oct 7, 2024
e6e1078
Convert Release Profiles to TypeScript
mynameisbogdan Sep 27, 2024
3828e47
Fixed: Copy to clipboard in non-secure contexts
mynameisbogdan Sep 27, 2024
c435fcd
Fixed: Error updating providers with ID missing from JSON
mynameisbogdan Oct 7, 2024
620220b
Add new category for FL
mynameisbogdan Sep 30, 2024
ea0bfed
Fixed: Validate path on series update
mynameisbogdan Oct 2, 2024
a6735e7
Fixed: Manual importing to nested series folders
mynameisbogdan Oct 3, 2024
a001216
Fixed: Cleaning paths for top level root folders
mynameisbogdan Oct 7, 2024
c8f419b
Use the first allowed quality for cutoff met rejection message with d…
mynameisbogdan Oct 4, 2024
354ed96
Fixed: Ignore free space check before grabbing if directory is missing
markus101 Oct 5, 2024
39074b0
New: Use 307 redirect for requests missing URL Base
markus101 Oct 5, 2024
ebfa000
Multiple Translations updated by Weblate
weblate Oct 7, 2024
32fa63d
Convert FormInputButton to TypeScript
mynameisbogdan Oct 4, 2024
a641f28
Convert Naming options to TypeScript
mynameisbogdan Sep 30, 2024
2f1793d
Filename examples specific for daily and anime naming
mynameisbogdan Sep 30, 2024
86446a7
Automated API Docs update
Oct 7, 2024
28599f8
Multiple Translations updated by Weblate
weblate Oct 24, 2024
562e0dd
Bump version to 4.0.10
markus101 Oct 26, 2024
0784f56
Multiple Translations updated by Weblate
weblate Oct 26, 2024
135b5c2
Use `OperatingSystem` class to get OS information
HadrienPatte Oct 26, 2024
07374de
Fixed: Matched alternative titles and tags in series search results
mynameisbogdan Oct 26, 2024
fe40d83
Fixed: Dedupe releases for single daily and anime episode searches
mynameisbogdan Oct 26, 2024
f502eaf
Bump frontend packages
mynameisbogdan Oct 10, 2024
1e89a1a
Include exception message in SkyHook failure message
mynameisbogdan Oct 10, 2024
57534db
New: Display tags on import list cards
mynameisbogdan Oct 26, 2024
20ef22b
New: Real time UI updates for provider changes
mynameisbogdan Oct 26, 2024
10b55bb
Fixed: Natural sorting for tags list in the UI
mynameisbogdan Oct 26, 2024
0bc4903
Inherit trigger from pushed command models
mynameisbogdan Oct 17, 2024
df67248
Improve message for grab errors due to no matching tags
mynameisbogdan Oct 18, 2024
404e6d6
Cleanse exceptions in event logs
mynameisbogdan Oct 19, 2024
fcf68d9
Fix settings fetching failure for updates
mynameisbogdan Oct 20, 2024
ff724b7
Fixed: Initial state for qBittorrent v5.0
mynameisbogdan Oct 26, 2024
240a033
Fixed: Changing series to another root folder without moving files
mynameisbogdan Oct 25, 2024
8a558b3
New: Maintain '...' in naming format
markus101 Oct 12, 2024
41ddacc
New: Improve parsing absolute followed by standard numbering
markus101 Oct 13, 2024
03b9c95
New: Episode mappings in .plexmatch metadata files
markus101 Oct 26, 2024
de69d8e
Update JetBrains logos
markus101 Oct 25, 2024
33139d4
Fixed: Status check for completed directories in Deluge
mynameisbogdan Oct 26, 2024
f8a879f
Update System.Text.Json to version 6.0.10
BarbUk Oct 26, 2024
c114e2d
Multiple Translations updated by Weblate
weblate Oct 26, 2024
682d2b4
Convert Form Components to TypeScript
markus101 Oct 26, 2024
c41e3ce
Update paths mapping translations for series specific
mynameisbogdan Oct 23, 2024
804eaa1
Multiple Translations updated by Weblate
weblate Nov 2, 2024
1fcfb88
New: Use instance name in PWA manifest
markus101 Oct 27, 2024
e88f25d
Fixed: Parse version after quality in renamed files
markus101 Oct 27, 2024
e006b40
New: Add individual edit to Manage Custom Formats
markus101 Oct 27, 2024
0f225b0
Rename Manage Custom Formats to Manage Formats
markus101 Oct 27, 2024
3ddc6ac
New: Favorite folders in Manual Import
markus101 Oct 27, 2024
020ed32
Use current time for cache break in development
markus101 Oct 27, 2024
1df0ba9
Fixed: Use download client name for history column
markus101 Oct 28, 2024
73208e2
New: Include source path with Webhook import event episode file
markus101 Oct 28, 2024
22005dc
Fixed: Cleaning the French preposition 'à' from titles
mynameisbogdan Oct 31, 2024
38c0135
Fixed: Loading queue with pending releases for deleted series
mynameisbogdan Oct 31, 2024
8e636d7
Fixed: Telegram notification link text
aviadlevy Nov 1, 2024
409823c
Fixed: Interactive searches when using Escape to close previous searches
mynameisbogdan Nov 1, 2024
8d4ba77
Fixed: New values for custom filters
mynameisbogdan Nov 1, 2024
832de3e
Fixed: Root folder existence for import lists health check
mynameisbogdan Nov 2, 2024
a77bf64
New: Monitor New Seasons column for series list
markus101 Nov 3, 2024
978349e
New: Reject files during import that have no audio tracks
markus101 Nov 3, 2024
78cf13d
Increase retries for DebouncerFixture
markus101 Nov 3, 2024
b8af3af
Fixed: Filtering queue by multiple qualities
markus101 Nov 3, 2024
fb54004
New: Filter queue by status
markus101 Nov 3, 2024
59f3be0
Show a series path as example in Mount Health Check
mynameisbogdan Nov 4, 2024
4e9ef57
Multiple Translations updated by Weblate
weblate Nov 4, 2024
ae7c07e
Automated API Docs update
Nov 4, 2024
45a62a2
Multiple Translations updated by Weblate
weblate Nov 10, 2024
675e3cd
New: Labels support for Transmission 4.0
mynameisbogdan Nov 15, 2024
ceeec09
Fixed: Normalize unicode characters when comparing paths for equality
markus101 Nov 4, 2024
5bc9435
Don't try to process items that didn't import in manual import
markus101 Nov 10, 2024
67a1ecb
Console warnings for missing translations on development builds
mynameisbogdan Nov 4, 2024
e28b7c3
Fixed: .plexmatch episodes on separate lines
markus101 Nov 5, 2024
6677fd1
New: Improve stored UI settings for multiple instances under the same…
markus101 Nov 6, 2024
78fb202
New: Add headers setting in webhook connection
gauthier-th Nov 15, 2024
88f4016
New: Parse original from release name when specified
markus101 Nov 7, 2024
f739fd0
Fixed: Allow files to be moved from Torrent Blackhole even when remov…
markus101 Nov 15, 2024
202190d
New: Replace 'Ben the Man' release group parsing with 'Ben the Men'
markus101 Nov 6, 2024
936cf69
Improve LanguageSelectInput
markus101 Nov 8, 2024
3e99917
Fixed: Closing on click outside select input and styling on Library I…
markus101 Nov 8, 2024
ca0bb14
Allow `GetFileSize` to follow symlinks
eliasbenb Nov 15, 2024
dcbef6b
Multiple Translations updated by Weblate
weblate Nov 24, 2024
91c5e6f
Fixed: Custom Format upgrading not respecting 'Upgrades Allowed'
markus101 Nov 24, 2024
8b38ccf
Bump version to 4.0.11
markus101 Nov 27, 2024
b51a490
Rename SizeLeft and TimeLeft queue item properties
markus101 Nov 19, 2024
dba3a82
Fixed: Prevent lack of internet from stopping all health checks from …
markus101 Nov 19, 2024
5034d83
Fixed: Kometa and Kodi metadata failing with duplicate episode files
markus101 Nov 19, 2024
12c1eb8
Fixed: New episodes in season follow season's monitored status
markus101 Nov 22, 2024
183b8b5
Deluge communication improvements
markus101 Nov 27, 2024
e361f18
New: Support for new SABnzbd history retention values
markus101 Nov 23, 2024
2f62494
Convert EditSeriesModal to TypeScript
markus101 Nov 24, 2024
a90866a
Webpack web target
markus101 Nov 24, 2024
4491df3
Update React and add React Query
markus101 Nov 24, 2024
417af2b
New: Ability to change root folder when editing series
markus101 Nov 24, 2024
93c3f6d
Fixed: Truncating long text in the middle when it shouldn't be truncated
markus101 Nov 25, 2024
40f4ef2
Support Postgres with non-standard version string
markus101 Nov 25, 2024
f960651
Fixed: Error loading queue
markus101 Nov 27, 2024
62bcf39
Fixed: Adding/Editing not replacing Implementation Name
markus101 Nov 28, 2024
bd656ae
Fixed: Avoid default category on existing Transmission configurations
mynameisbogdan Nov 27, 2024
65d07fa
Automated API Docs update
Nov 28, 2024
00c16cd
Multiple Translations updated by Weblate
weblate Dec 1, 2024
efd4871
Deleted translation using Weblate (zh_HANS (generated) (zh_HANS))
Dec 1, 2024
160151c
Use 'text-wrap: balance' for text wrapping on overview and details
hhjuhl Dec 2, 2024
8c67a3b
Add reason enum to decision engine rejections
markus101 Nov 11, 2024
776143c
New: Option to treat downloads with non-media extensions as failed
markus101 Nov 14, 2024
e039dc4
New: Add Languages to Webhook Notifications
stevietv Dec 2, 2024
4c41a4f
New: Add config file setting for CGNAT authentication bypass
s0up4200 Dec 2, 2024
8cb58a6
Fixed: Don't fail import if symlink target can't be resolved
markus101 Dec 1, 2024
fb9a5ef
Add return type for series/lookup endpoint
markus101 Dec 1, 2024
c62fc9d
New: Kometa metadata file creation disabled
markus101 Dec 2, 2024
ed536a8
Remove unnecessary heap allocations in local IP check
Gylesie Dec 2, 2024
32f6692
Automated API Docs update
Dec 2, 2024
c38deba
Multiple Translations updated by Weblate
weblate Dec 2, 2024
04ebf03
Multiple Translations updated by Weblate
weblate Dec 8, 2024
8ce6881
Cleanup unused metadatas connector
mynameisbogdan Dec 2, 2024
6c231cb
Increase input sizes in edit series modal
mynameisbogdan Dec 2, 2024
e8c3aa2
New: Reactive search button on Wanted pages
stevietv Dec 9, 2024
ebe2310
Fixed: Custom Format score bypassing upgrades not being allowed
markus101 Dec 7, 2024
34ae65c
Refine localization string for IndexerSettingsFailDownloadsHelpText
stevietv Dec 9, 2024
4e4bf35
Convert MediaInfo to TypeScript
markus101 Dec 8, 2024
03b8c4c
Convert EpisodeSearch to TypeScript
markus101 Dec 8, 2024
f1d54d2
Convert EpisodeHistory to TypeScript
markus101 Dec 8, 2024
1374240
Fixed: Converting TimeSpan from database
markus101 Dec 8, 2024
36633b5
New: Optionally as Instance Name to Telegram notifications
stevietv Dec 9, 2024
e70aef9
Multiple Translations updated by Weblate
weblate Dec 14, 2024
024462c
Fixed: Fetching ICS calendar with missing series
mynameisbogdan Dec 9, 2024
1484809
Upgrade TypeScript and core-js
markus101 Dec 9, 2024
811eb36
Convert Calendar to TypeScript
markus101 Dec 9, 2024
c0e264c
Fixed: Series without tags bypassing tags on Download Client
markus101 Dec 11, 2024
b552d4e
Fixed: Error getting processes in some cases
markus101 Dec 11, 2024
cb7489c
Fixed: Augmenting languages from indexer for release with stale index…
markus101 Dec 11, 2024
3b00112
Fixed: Refresh backup list on deletion
mynameisbogdan Dec 11, 2024
5d1d44e
New: Series genres for search results
mynameisbogdan Dec 13, 2024
99e25ce
Multiple Translations updated by Weblate
weblate Dec 15, 2024
220b4bc
Fixed: Opening episode info modal on calendar event click
mynameisbogdan Dec 15, 2024
c39fb4f
Fix typo about download clients comment
mynameisbogdan Dec 15, 2024
2e83d59
Set minor version for core-js in babel/preset-env
mynameisbogdan Dec 15, 2024
bfcd017
Upgrade babel to 7.26.0
markus101 Dec 15, 2024
016b571
Upgrade Font Awesome to 6.7.1
markus101 Dec 15, 2024
ed10b63
Upgrade @typescript-eslint packages to 8.181.1
markus101 Dec 17, 2024
edfc12e
Fixed: Loading calendar on older browsers
markus101 Dec 16, 2024
983b079
Fix: Adding a new root folder from edit series modal
stevietv Dec 21, 2024
82c526e
Multiple Translations updated by Weblate
weblate Dec 19, 2024
9a69222
Fixed: Prevent exception when grabbing unparsable release
markus101 Dec 18, 2024
608f67a
Bump MailKit to 4.8.0 and Microsoft.Data.SqlClient to 2.1.7
mynameisbogdan Dec 18, 2024
ab49268
Bump NLog, IPAddressRange, Polly, ImageSharp, Npgsql, System.Memory, …
mynameisbogdan Dec 18, 2024
ce7d8a1
Multiple Translations updated by Weblate
weblate Dec 22, 2024
f7b54f9
Fixed: Prevent exception for seed configuration provider with invalid…
mynameisbogdan Dec 21, 2024
1c30ecd
Fixed: Series updated during Import List Sync not reflected in the UI
markus101 Dec 21, 2024
4b14368
Multiple Translations updated by Weblate
weblate Dec 25, 2024
514c049
Fixed: Advanced settings for Metadata consumers
mynameisbogdan Dec 23, 2024
c885fb8
Fixed: Searching by title not using all titles
meharryp Dec 26, 2024
fae24e9
Don't send session information to Sentry
markus101 Dec 26, 2024
ef358e6
Multiple Translations updated by Weblate
weblate Dec 29, 2024
8cd5cd6
Fixed: Improve synchronization logic for import list items
markus101 Dec 26, 2024
f05e552
Suggest adding IP to RPC whitelist for on failed Transmission auth
mynameisbogdan Dec 28, 2024
8aad79f
Check if backup folder is writable on backup
mynameisbogdan Dec 30, 2024
ac7c05c
Multiple Translations updated by Weblate
weblate Jan 4, 2025
1969e01
Bump version to 4.0.12
markus101 Jan 5, 2025
4dcc015
Fixed: qBittorrent Ratio Limit Check
stevietv Jan 5, 2025
035c474
Fixed: Listening on all IPv4 Addresses
stevietv Jan 5, 2025
f843107
Multiple Translations updated by Weblate
weblate Jan 10, 2025
c589c4f
Fixed: Tooltips for detailed error messages
markus101 Jan 5, 2025
3c8268c
Additional logging for custom format score
stevietv Jan 11, 2025
1fea0b3
Remote image links for Discord's manual interaction needed
mynameisbogdan Jan 6, 2025
1609f0c
New: Show release source in history grab popup
stevietv Jan 11, 2025
fa0f776
Additional logging for delay profile decisions
stevietv Jan 11, 2025
ec73a13
Update translation widget
stevietv Jan 11, 2025
7d77500
Fixed: Series being unmonitored when still in Import List
markus101 Jan 9, 2025
acebe87
New: Parse releases with year and season number in brackets
markus101 Jan 9, 2025
8f5d628
Multiple Translations updated by Weblate
weblate Jan 17, 2025
a840bb5
New: reflink support for ZFS
jcassette Jan 18, 2025
fe8478f
Fix translation key for RSS in History Details
mynameisbogdan Jan 12, 2025
87934c7
Fix typo in logging for custom format score
mynameisbogdan Jan 13, 2025
6dae2f0
Fixed: Images after series are updated via Series Editor
mynameisbogdan Jan 18, 2025
c69db1f
New: Parsing titles with AKA separating multiple titles
mynameisbogdan Jan 18, 2025
2ac139a
Fixed: Augmenting languages for releases with MULTI and other languages
kephasdev Jan 17, 2025
970df1a
Multiple Translations updated by Weblate
weblate Jan 24, 2025
963395b
Prevent page crash on console.error being used with non-string values
mynameisbogdan Jan 21, 2025
ba22992
Fixed: Don't search for unmonitored specials when searching season
stevietv Jan 26, 2025
103ccd7
New: Treat .scr as dangerous file
stevietv Jan 26, 2025
e37684e
Fixed: Failing dangerous and executable single file downloads
stevietv Jan 26, 2025
4ba9b21
Multiple Translations updated by Weblate
weblate Jan 26, 2025
3b02444
Fixed: Drop downs flickering in some cases
markus101 Jan 30, 2025
fa38498
Multiple Translations updated by Weblate
weblate Feb 11, 2025
4e65669
Bump version to 4.0.13
markus101 Feb 12, 2025
b740783
Fixed: Rejected Imports with no associated release or indexer
stevietv Feb 19, 2025
6f1fc16
Fixed: Don't return warning in title field for rejected downloads
stevietv Feb 22, 2025
7193acb
Fixed: Improve rejected download handling
stevietv Mar 8, 2025
c8cb74a
Fixed: Downloads failed for file contents will be removed from client
markus101 Mar 6, 2025
feeed9a
New: .arj and .lzh extensions are potentially dangerous
v3DJG6GL Feb 22, 2025
1260d3c
Upgrade ImageSharp
markus101 Mar 15, 2025
640e3e5
Bump version to 4.0.14
markus101 Mar 15, 2025
bb954a7
Fixed: Trakt Import List authentication after 24 hours
markus101 May 25, 2025
2b2b973
Fixed: Prevent series without IMDB ID from being removed erroneously
mpeleshenko Jun 10, 2025
7db7567
Bump version to 4.0.15
markus101 Jun 10, 2025
d101077
Set known networks to RFC 1918 ranges during startup
markus101 Oct 26, 2025
88d5636
Add XML declaration and clean up Kodi metadata generation
markus101 Mar 24, 2025
77a335d
Fixed: Default runtime to 45 minutes if unavailable when importing ep…
markus101 Apr 1, 2025
bc037ae
Follow redirects when fetching Custom Lists
kenkangxgwe Sep 1, 2025
36225c3
Fixed: Prevent modals from overflowing screen width
CollinHeist Sep 27, 2025
fdc07a4
Fixed: qBittorrent /login API success check
Polgonite Oct 22, 2025
8c50919
Bump version to 4.0.16
markus101 Oct 28, 2025
52972e7
Add private IPv6 networks
markus101 Nov 3, 2025
cbd7df2
Fixed: Multiple XML declarations in kodi/xmbc episodes metadata
stevietv Dec 13, 2025
028d241
Fixed: Plexmatch special episode numbers
stevietv Dec 22, 2025
1f08030
Merge remote-tracking branch 'upstream/develop' into develop
diveflo Jan 15, 2026
f3b1a28
remove superfluous workflows
diveflo Jan 15, 2026
cb79b62
Bump @babel/runtime from 7.25.7 to 7.28.6 (#89)
dependabot[bot] Jan 15, 2026
0fb8f84
update artifact actions
diveflo Jan 15, 2026
03b4eea
Bump qs from 6.13.0 to 6.14.1
dependabot[bot] Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
13 changes: 13 additions & 0 deletions .devcontainer/Sonarr.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// This file is used to open the backend and frontend in the same workspace, which is necessary as
// the frontend has vscode settings that are distinct from the backend
{
"folders": [
{
"path": ".."
},
{
"path": "../frontend"
}
],
"settings": {}
}
19 changes: 19 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/dotnet
{
"name": "Sonarr",
"image": "mcr.microsoft.com/devcontainers/dotnet:1-6.0",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"nodeGypDependencies": true,
"version": "16",
"nvmVersion": "latest"
}
},
"forwardPorts": [8989],
"customizations": {
"vscode": {
"extensions": ["esbenp.prettier-vscode"]
}
}
}
27 changes: 17 additions & 10 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,18 @@ dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true
csharp_style_var_when_type_is_apparent = true
csharp_style_var_elsewhere = true
# Prefer "out" variables to be declared inline
csharp_style_inlined_variable_declaration = true

# Using directive is unnecessary.
dotnet_diagnostic.IDE0005.severity = error
# Use var instead of explicit type
dotnet_diagnostic.IDE0007.severity = error
# Inline variable declaration
dotnet_diagnostic.IDE0018.severity = error

# Stylecop Rules
dotnet_diagnostic.SA0001.severity = none
Expand Down Expand Up @@ -167,6 +176,7 @@ dotnet_diagnostic.CA1309.severity = suggestion
dotnet_diagnostic.CA1310.severity = suggestion
dotnet_diagnostic.CA1401.severity = suggestion
dotnet_diagnostic.CA1416.severity = suggestion
dotnet_diagnostic.CA1419.severity = suggestion
dotnet_diagnostic.CA1507.severity = suggestion
dotnet_diagnostic.CA1508.severity = suggestion
dotnet_diagnostic.CA1707.severity = suggestion
Expand All @@ -182,9 +192,6 @@ dotnet_diagnostic.CA1720.severity = suggestion
dotnet_diagnostic.CA1721.severity = suggestion
dotnet_diagnostic.CA1724.severity = suggestion
dotnet_diagnostic.CA1725.severity = suggestion
dotnet_diagnostic.CA1801.severity = suggestion
dotnet_diagnostic.CA1802.severity = suggestion
dotnet_diagnostic.CA1805.severity = suggestion
dotnet_diagnostic.CA1806.severity = suggestion
dotnet_diagnostic.CA1810.severity = suggestion
dotnet_diagnostic.CA1812.severity = suggestion
Expand All @@ -196,13 +203,11 @@ dotnet_diagnostic.CA1819.severity = suggestion
dotnet_diagnostic.CA1822.severity = suggestion
dotnet_diagnostic.CA1823.severity = suggestion
dotnet_diagnostic.CA1824.severity = suggestion
dotnet_diagnostic.CA1825.severity = suggestion
dotnet_diagnostic.CA2000.severity = suggestion
dotnet_diagnostic.CA2002.severity = suggestion
dotnet_diagnostic.CA2007.severity = suggestion
dotnet_diagnostic.CA2008.severity = suggestion
dotnet_diagnostic.CA2009.severity = suggestion
dotnet_diagnostic.CA2010.severity = suggestion
dotnet_diagnostic.CA2011.severity = suggestion
dotnet_diagnostic.CA2012.severity = suggestion
dotnet_diagnostic.CA2013.severity = suggestion
dotnet_diagnostic.CA2100.severity = suggestion
Expand Down Expand Up @@ -233,6 +238,8 @@ dotnet_diagnostic.CA2243.severity = suggestion
dotnet_diagnostic.CA2244.severity = suggestion
dotnet_diagnostic.CA2245.severity = suggestion
dotnet_diagnostic.CA2246.severity = suggestion
dotnet_diagnostic.CA2249.severity = suggestion
dotnet_diagnostic.CA2251.severity = suggestion
dotnet_diagnostic.CA3061.severity = suggestion
dotnet_diagnostic.CA3075.severity = suggestion
dotnet_diagnostic.CA3076.severity = suggestion
Expand Down Expand Up @@ -262,7 +269,7 @@ dotnet_diagnostic.CA5397.severity = suggestion

dotnet_diagnostic.SYSLIB0006.severity = none

[*.{js,html,js,hbs,less,css}]
[*.{js,html,hbs,less,css,ts,tsx}]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
Expand Down
9 changes: 0 additions & 9 deletions .esprintrc

This file was deleted.

16 changes: 9 additions & 7 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug Report
description: 'Support Requests will be closed immediately, if you are not 100% certain this is a bug please go to our Reddit, Discord, Forums, or IRC first. Sonarr v2 is EOL & unsupported.'
description: 'Only bug reports for v4 will be accepted, older versions are no longer receiving bug fixes and support issues will be closed immediately.'
labels: ['needs-triage']
body:
- type: checkboxes
Expand Down Expand Up @@ -37,17 +37,19 @@ body:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Sonarr**: Sonarr 3.0.6.1265
- **OS**: Ubuntu 22.04
- **Sonarr**: Sonarr 4.0.0.766
- **Docker Install**: Yes
- **Using Reverse Proxy**: No
- **Browser**: Firefox 90 (If UI related)
- **Database**: Sqlite 3.41.2
value: |
- OS:
- Sonarr:
- Docker Install:
- Using Reverse Proxy:
- Browser:
- Sonarr:
- Docker Install:
- Using Reverse Proxy:
- Browser:
- Database:
render: markdown
validations:
required: true
Expand Down
15 changes: 8 additions & 7 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
#### Database Migration
YES | NO

#### Description
A few sentences describing the overall goals of the pull request's commits.

#### Todos
- [ ] Tests
- [ ] Wiki Updates
<!-- Remove any of the following sections if they are not used -->

#### Screenshots for UI Changes


#### Database Migration
YES - ###


#### Issues Fixed or Closed by this PR
* Closes #

*
29 changes: 29 additions & 0 deletions .github/actions/archive/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Archive
description: Archive binaries for deployment

inputs:
os:
description: 'OS that the packaging is running on'
required: true
artifact:
description: 'Binary artifact'
required: true
archive_type:
description: 'File type to use for the final package'
required: true
branch:
description: 'Git branch used for this build'
required: true
major_version:
description: 'Sonarr major version'
required: true
version:
description: 'Sonarr version'
required: true

runs:
using: 'composite'
steps:
- name: Archive Artifact
uses: thedoctor0/zip-release@0.7.5

78 changes: 78 additions & 0 deletions .github/actions/package/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Package
description: Packages binaries for deployment

inputs:
platform:
description: 'Binary platform'
required: true
framework:
description: '.net framework'
required: true
artifact:
description: 'Binary artifact'
required: true
branch:
description: 'Git branch used for this build'
required: true
major_version:
description: 'Sonarr major version'
required: true
version:
description: 'Sonarr version'
required: true

runs:
using: 'composite'
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: ${{ inputs.artifact }}
path: _output

- name: Download UI Artifact
uses: actions/download-artifact@v4
with:
name: build_ui
path: _output/UI

- name: Configure Environment Variables
shell: bash
run: |
echo "FRAMEWORK=${{ inputs.framework }}" >> "$GITHUB_ENV"
echo "BRANCH=${{ inputs.branch }}" >> "$GITHUB_ENV"
echo "SONARR_MAJOR_VERSION=${{ inputs.major_version }}" >> "$GITHUB_ENV"
echo "SONARR_VERSION=${{ inputs.version }}" >> "$GITHUB_ENV"

- name: Create Packages
shell: bash
run: $GITHUB_ACTION_PATH/package.sh

- name: Create Windows Installer (x64)
if: ${{ inputs.platform == 'windows' }}
working-directory: distribution/windows/setup
shell: cmd
run: |
SET RUNTIME=win-x64

build.bat

- name: Create Windows Installer (x86)
if: ${{ inputs.platform == 'windows' }}
working-directory: distribution/windows/setup
shell: cmd
run: |
SET RUNTIME=win-x86

build.bat

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: release_${{ inputs.platform }}
compression-level: 0
if-no-files-found: error
path: |
_artifacts/*.exe
_artifacts/*.tar.gz
_artifacts/*.zip
67 changes: 67 additions & 0 deletions .github/actions/package/package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/bin/bash

outputFolder=_output
artifactsFolder=_artifacts
uiFolder="$outputFolder/UI"
framework="${FRAMEWORK:=net6.0}"

rm -rf $artifactsFolder
mkdir $artifactsFolder

for runtime in _output/*
do
name="${runtime##*/}"
folderName="$runtime/$framework"
sonarrFolder="$folderName/Sonarr"
archiveName="Sonarr.$BRANCH.$SONARR_VERSION.$name"

if [[ "$name" == 'UI' ]]; then
continue
fi

echo "Creating package for $name"

echo "Copying UI"
cp -r $uiFolder $sonarrFolder

echo "Setting permissions"
find $sonarrFolder -name "ffprobe" -exec chmod a+x {} \;
find $sonarrFolder -name "Sonarr" -exec chmod a+x {} \;
find $sonarrFolder -name "Sonarr.Update" -exec chmod a+x {} \;

if [[ "$name" == *"osx"* ]]; then
echo "Creating macOS package"

packageName="$name-app"
packageFolder="$outputFolder/$packageName"

rm -rf $packageFolder
mkdir $packageFolder

cp -r distribution/macOS/Sonarr.app $packageFolder
mkdir -p $packageFolder/Sonarr.app/Contents/MacOS

echo "Copying Binaries"
cp -r $sonarrFolder/* $packageFolder/Sonarr.app/Contents/MacOS

echo "Removing Update Folder"
rm -r $packageFolder/Sonarr.app/Contents/MacOS/Sonarr.Update

echo "Packaging macOS app Artifact"
(cd $packageFolder; zip -rq "../../$artifactsFolder/$archiveName-app.zip" ./Sonarr.app)
fi

echo "Packaging Artifact"
if [[ "$name" == *"linux"* ]] || [[ "$name" == *"osx"* ]] || [[ "$name" == *"freebsd"* ]]; then
tar -zcf "./$artifactsFolder/$archiveName.tar.gz" -C $folderName Sonarr
fi

if [[ "$name" == *"win"* ]]; then
if [ "$RUNNER_OS" = "Windows" ]
then
(cd $folderName; 7z a -tzip "../../../$artifactsFolder/$archiveName.zip" ./Sonarr)
else
(cd $folderName; zip -rq "../../../$artifactsFolder/$archiveName.zip" ./Sonarr)
fi
fi
done
18 changes: 18 additions & 0 deletions .github/actions/publish-test-artifact/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Publish Test Artifact
description: Publishes a test artifact

inputs:
framework:
description: '.net framework'
required: true
runtime:
description: '.net runtime'
required: true

runs:
using: 'composite'
steps:
- uses: actions/upload-artifact@v4
with:
name: tests-${{ inputs.runtime }}
path: _tests/${{ inputs.framework }}/${{ inputs.runtime }}/publish/**/*
Loading
Loading