Simplify entity equality code and enfore db/metadata split
Use a nuget package to remove boilerplate code that needs careful
update when adding/removing fields. Add tests to enforce that all
fields are allocated to 'UseMetadataFrom' or 'UseDbFieldsFrom' to make
metadata refresh more foolproof.
Fix NRE when tracks are merged because artist wasn't set.
Fix NRE when tracks are merged and the merge target wasn't yet in the database.
* New: Swap to ImageSharp for image resizing to avoid leaks
Stop resizing album images also
* Fixed: MediaCoverModule falls back to fullsize for png and gif too
* Fixed: Look for all image extensions in DeleteBadMediaCovers.cs
* New: Unmapped files view
Displays all trackfiles that haven't been matched to a track.
Generalised the file details component and adds it to the album
details screen.
* Add sorting by quality
* New: MediaServiceTests & MediaRepoTests
On import the album release is adjusted, which triggers an
AlbumEditedEvent which in turn coverts media cover urls to local
urls. The addition of ?lastWrite=xxx broke the calculation of
extenions from the URL. To fix, only set the extension and don't
update the extension if url is changed.
As far as I can tell you wouldn't expect this to pass. Setting the
path is handled by AddArtistService, not ArtistService. This file is
present in the Sonarr tree but not included in the project.
GetFilesByAlbum performs a join on the album releases under the hood,
which won't be populated once the album is deleted. Fix by providing
a special delete method which omits the join and just looks at albumId.
* Add: option to skip automatic redownload when removing from queue
* Add tests for RedownloadFailedDownloadService
* Fix formatting
* Make re-download dialog conditional
* New: Only scan files that are new or updated
Pass through filter correctly
Add more tests
Add tests for migration 30
* Fix windows disk provider
* Don't publish deleted event for unmapped file
* Fix test on windows
* Retrieve all albums from metadata and filter client-side
Should significantly increase the proportion of artist requests hitting
cloudflare cache
* Add tests for album filtering
* Fixed: Artist only marked as refreshed if Albums/Tracks refreshed also
* Fixed: Skip album releases with no valid tracks
* Fixed: Don't add albums with no valid releases
* Fixed: Remove Albums with no valid releases
* Fixed: RemotePathMappingCheck deals with case where path invalid
The `Ensure` built into `FileExists` and `FolderExists` was throwing
an exception previously.
* Fixed: RemotePathMappingCheck doesn't fail if client unavailable
* New: Manual import improvements
- Detect and merge import with files already in library.
- Allow selection of album release from Manual Import modal.
- Loading indicator while fetching updated decisions
* Disable release switching if user manually overrode release
* Fixed: Cutoff Specification not Repsecting Profile Order
* Fixed: Incorrect wording in UpgradeAllowed logging
* Fixed: Change Logic to update if upgrade for any, downgrade for none.
* Fixed: Removed Double Preferred Word Logic
* New: Add Test Cases to Disk Upgrade Spec
* Fixed: Cleanup UpgradableSpecification
* Add ConcatToString extension and fix logging
* Fixed: Enum Naming, Commas
* Fixed: Don't fail reading m4a files when no 'day' tag set
* Fixed: Make sure Quality and MediaInfo are set if tag reading failed
* Add more tests for AudioTagService
* Fixed: qBittorrent api v2 support (qbit v4.1+)
Co-Authored-By: taloth <taloth@users.noreply.github.com>
Co-Authored-By: Mark Bebbington <mark@thebebs.uk>
* Fixed: Magnet Link progress visualisation and adding magnet links if dht is disabled in qBittorrent
* New: Indexer Seed Limit settings applied to new downloads for qBit
Co-Authored-By: taloth <taloth@users.noreply.github.com>
* Handle Deluge v2 beta breaking change in their api.
closes#2412
* Fixed: Codacy Format Issues
* New: Release Profiles - UI Updates
* New: Release Profiles - API Changes
* New: Release Profiles - Test Updates
* New: Release Profiles - Backend Updates
* New: Interactive Artist Search
* New: Change Montiored on Album Details Page
* New: Show Duration on Album Details Page
* Fixed: Manual Import not working if no albums are Missing
* Fixed: Sort search input by sortTitle
* Fixed: Queue columnLabel throwing JS error
* Cache result of GetAllArtists
* Fixed: Manual import not respecting album import notifications
* Fixed: partial album imports stay in queue, prompting manual import
* Fixed: Allow release if tracks are missing
* Fixed: Be tolerant of missing/extra "The" at start of artist name
* Improve manual import UI
* Omit video tracks from DB entirely
* Revert "faster test packaging in build.sh"
This reverts commit 2723e2a7b8.
-u and -T are not supported on macOS
* Fix tests on linux and macOS
* Actually lint on linux
On linux yarn runs scripts with sh not bash so ** doesn't recursively glob
* Match whole albums
* Option to disable fingerprinting
* Rip out MediaInfo
* Don't split up things that have the same album selected in manual import
* Try to speed up IndentificationService
* More speedups
* Some fixes and increase power of recording id
* Fix NRE when no tags
* Fix NRE when some (but not all) files in a directory have missing tags
* Bump taglib, tidy up tag parsing
* Add a health check
* Remove media info setting
* Tags -> audioTags
* Add some tests where tags are null
* Rename history events
* Add missing method to interface
* Reinstate MediaInfo tags and update info with artist scan
Also adds migration to remove old format media info
* This file no longer exists
* Don't penalise year if missing from tags
* Formatting improvements
* Use correct system newline
* Switch to the netstandard2.0 library to support net 461
* TagLib.File is IDisposable so should be in a using
* Improve filename matching and add tests
* Neater logging of parsed tags
* Fix disk scan tests for new media info update
* Fix quality detection source
* Fix Inexact Artist/Album match
* Add button to clear track mapping
* Fix warning
* Pacify eslint
* Use \ not /
* Fix UI updates
* Fix media covers
Prevent localizing URL propaging back to the metadata object
* Reduce database overhead broadcasting UI updates
* Relax timings a bit to make test pass
* Remove irrelevant tests
* Test framework for identification service
* Fix PreferMissingToBadMatch test case
* Make fingerprinting more robust
* More logging
* Penalize unknown media format and country
* Prefer USA to UK
* Allow Data CD
* Fix exception if fingerprinting fails for all files
* Fix tests
* Fix NRE
* Allow apostrophes and remove accents in filename aggregation
* Address codacy issues
* Cope with old versions of fpcalc and suggest upgrade
* fpcalc health check passes if fingerprinting disabled
* Get the Artist meta with the artist
* Fix the mapper so that lazy loaded lists will be populated on Join
And therefore we can join TrackFiles on Tracks by default and avoid an
extra query
* Rename subtitle -> lyric
* Tidy up MediaInfoFormatter
* Tests for migration 23
* Make the migration more robust
For duplicate foreign Ids, create dummy id so correlated subquery
doesn't fail.
If we can't parse the release from the database, put in a dummy release.
* Be more careful with metadata refreshes
Make sure we deal with items that are not linked to the correct parent
* Fixed: Search Monitored to work with accent
Replace accent in Album/Artist when parsing results from indexer
Fix regex to match for multiple albums
* add test cases
* New: Store all releases for an album and track artists
* Add Overview, links and release date by release
* Tidy up
* Fix metadata refresh errors following musicbrainz edits
* Allow downloading any search result
Ones that couldn't be parsed get a red icon
* Not required - initialized to false
* Add a warning the the queue page for manual downloads
* Fixed: Search fails for many artist/albums with specials
* fixup! Replace & with space
* fixup! Add two more test cases
* fixup! Add last test case
* fixup: Newznab test case
* Add regex escape to fix#231
* Add escape to artist name
* Fix test case
* Use single album parameter and add test cases
* Add artist test cases
* Add qualities to release titles
* Create albums in ParserFixture
* Added missing case in QualityParser. Handle escaping regex better for artists/albums that are just symbols.
* Removed custom code to escape slashes. Enhanced regex to support more test cases.
* Fixed Regex for other test cases.
* Small enhancements to code. Removed log statement.
* Tweaked one of my regex to account for not stripping ? from SimpleTitleRegex.
* Implemented functionality to find album from DB if a track has album in the MusicBrainz Release Id tag. If tag doesn't exist or album is not found, handle via normal routes.
* Added a test case
* Fixed a bad merge.
* Fixed a bug where a track with an empty Album IDv3 tag always was ignored, even if it had MusicBrainz Release Id hardcoded.
* fixup: Quick fixes to get this merged tonight due to bug in develop
* Added refresh title on the refresh button.
* Added a quick fix for common parsing issues when albums or tracks contain (special edition), (deluxe edition), [bonus], (version), (single), etc.
* Update NLog to 4.5rc6 to fix compatibility with mono 5.10
* Added console logging in case NLog fails to initialize.
* Revert added references in "Update NLog to 4.5rc6 to fix compatibility with mono 5.10"
This partially reverts commit 13dd224281.
* Change dictionary cast to conversion from Sonarr/Sonarr@99ee59e
* New: Manually Edit/Override Album Release
* !fixup for comments, loading all albums instead of only artist albums
* fixup! UI Cleanup lint issues
* fixup! Remove AddAlbum service for now, fix refresh override selected release
* fixup! Last one... to fix updating albums with custom release set
Closes#109Closes#129Closes#128
Ability to cancel an import lookup/search at any point.
Ability to move artist path from Artist Edit or bulk move from Mass Editor.
Trigger manual import for Artist path from Artist Detail page.
Pulled from Sonarr
* Quality range uses kbits per second. Quality ranges updated for each format
* Changed vorbis q10 weight
* Fixed element name
* Added migration to keep existing MB/min quality constraints valid
* Fixed migration SQL
* Slider step now 1
* Fix: using kbps for min size as well
* Added tooltip for quality-size
* Updated AcceptableSizeSpecification test
* Small magic number fix
* Re-enable unit tests in appveyor
* Delete SingleEpisodeParserFixture.cs
* fixup! Oops
* Fix multiple tests
* Fixed Language Tests
* Couple More Simple Test Fixes
* Last Round of Test Fixes
* More test Cleanup
* Fix 3 Newznab Tests
* Fixes Misc Issues with Album Metadata Extrafiles
* Fixed: Move Empty Subfolders to after ArtistRenamedEvent and Metadata mover
* Remove Path from Album Table, Fix Wdtv, MediaBrowser, Roksbox
* Remove Album Path from UI
* Remove Comments and add Jpeg extension to XMBC image regex
* Multi Disc Stage 1 - Backend Work
* Quality Group Functionality
* Fixed: Only show wanted album types on ArtistDetail page
* Add Media Count Column to ArtistDetail Page
* Parser updates for multidisc cases, other usenet release title formats
* Search for Tracks by Medium Number in Addition to Title and TrackNumber
* Medium Renaming Token for Track Naming
* fixup Codacy and Comment Cleanup
* fixup remove comments
* Preliminary Work for Extras for Music
* DB Migration for ExtraFiles, Other Cleanup
* More Extras Work, Add Album Metadata Type
* Update Housekeeps for Music Extras
* Fix HouseKeeper and add new Tests
* Final round of Cleanup