Commit Graph

144 Commits

Author SHA1 Message Date
ta264 2097bfff94 Fixed: Null reference exceptions on update
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.
2019-08-28 19:03:26 +01:00
ta264 4413c7e46c New: Unmapped files view (#888)
* 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
2019-08-25 11:49:30 -04:00
ta264 0352f8d3ff Fixed: Faster artist endpoint (#874)
* Fixed: Speed up AllArtist API endpoint

* New: Display UI before artists have loaded

* Add test of new repository methods
2019-08-17 08:04:59 +01:00
ta264 c898a18d31 Fixed: Set remote album ID so we don't always think album updated 2019-08-03 15:04:19 +01:00
ta264 1dcccf2683 Fixed: Frontend updates when selected album release changed 2019-08-03 15:04:19 +01:00
ta264 e9ced07b28 Fixed: Old foreign id query too permissive 2019-08-03 15:04:19 +01:00
ta264 a35f965d31 New: Write genres and album art to track file tags 2019-08-02 19:25:14 +01:00
ta264 a0a96911f8 Fixed: Use correct ID to search for Albums 2019-08-02 19:22:21 +01:00
Qstick 8b860bcb82 Changed: Remove Language Profiles (#870)
* Changed: Remove Language Profiles

* fixup! Changed: Remove Language Profiles

* fixup! Changed: Remove Language Profiles

* Remove unused method in FileNameBuilder

* Fixed: Cleanup Int Converter Copy/Paste Issues and Grammar
2019-08-02 07:50:09 -04:00
ta264 814e44b7e4 Fixed: Actually refresh media covers 2019-07-27 07:31:47 +01:00
ta264 61b6572f61 Fixed: Failure re-adding a deleted artist 2019-07-27 07:31:47 +01:00
ta264 77d02a03a0 Add artist refresh completed event
Always fires unlike update, which only fires on actual update.  Use
this to make sure media covers are up to date on refresh
2019-07-24 19:34:27 +01:00
ta264 8160f3d84a Fixed: Simplify ArtistMetadataRepository 2019-07-24 19:34:27 +01:00
ta264 0b7a42ee3b New: Refactor metadata update 2019-07-24 19:34:27 +01:00
ta264 f5c1858d4c Fixed: UpdateAlbums was a duplicate of UpdateMany 2019-07-24 19:34:27 +01:00
ta264 76db27e8c2 New: Add old ids, artist aliases and genres 2019-07-24 19:34:27 +01:00
Qstick 8a8799176f New: Setting monitor None when adding arist will unmonitor artist 2019-06-11 22:28:57 -04:00
ta264 166fc90454 New: Only scan files that are new or updated (#760)
* 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
2019-06-08 15:13:58 -04:00
Qstick a4a3bc5127 New: Don't overwrite Images/Overviews if new is blank 2019-04-22 16:29:15 -04:00
ta264 045a3ce404 Fixed: Skip albums and releases with no valid tracks (#754)
* 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
2019-04-15 20:52:43 -04:00
Qstick 1bcee3ba97 Fixed: ArtistRepo Cleanup 2019-03-22 21:31:27 -04:00
ta264 580641a600 Fixed: Don't attempt to insert duplicate ids or monitor multiple releases (#684) 2019-03-22 09:33:48 +00:00
ta264 bf32512fa2 Fixed: Make artist stats update when album (un)monitored (#673) 2019-03-15 21:48:50 +00:00
ta264 072f772dc8 New: Write metadata to tags, with UI for previewing changes (#633) 2019-03-15 12:10:45 +00:00
Tom Andrews 36f34a4113 Fixed: Don't find album when multiple albums have the same name 2019-03-14 13:14:06 +00:00
Tom Andrews c500f7b943 Fixed: InvalidOperationException when two artists have same name 2019-03-14 13:14:06 +00:00
ta264 1c7ded859b Fixed: More improvements to sentry logging (#669)
* Only add the exception message for some types

* Cleanse exception messages also

* Don't put exception message into log

It breaks the sentry grouping

* Combine the two calculations of fingerprint
2019-03-13 19:10:58 -04:00
Qstick 42c16c227e New: Import List Exclusions (#608)
* New: Import List Exclusions

* Fixed: ImportExclusion ForeignId Checks, Unique. RefreshArtist Duplicate

* Fixed: Copy/Paste typos
2019-03-01 17:26:36 -05:00
Qstick 3f064c94b9 New: Release Profiles, Frontend updates (#580)
* 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
2019-02-23 17:39:11 -05:00
ta264 bb02d73c42 Whole album matching and fingerprinting (#592)
* 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
2019-02-16 09:49:24 -05:00
Qstick f827ba418c Fixed: MoveArtist logging a failure and a success message 2019-01-23 21:00:59 -05:00
Qstick 0e124af6ce Fixed: Missing album types, typos in type/status (#593)
* Fixed: Missing album types, typos in type/status

* Update SecondaryAlbumType.cs
2019-01-18 23:35:49 -05:00
ta264 9185223f53 Fix more issues with migration 23 (#577)
* 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
2019-01-12 11:56:13 -05:00
ta264 6723f32abb WIP: Fix migration to DB version 23 (#571)
* Watch out for malformed AlbumReleases in Albums

Don't try to insert if Title is empty and catch and SQLite exceptions.

* Better fix for migration

Filter out null titles and duplicate release ids

Revert "Watch out for malformed AlbumReleases in Albums"

This reverts commit b9f707dc2f4dec79a7415d7941d81da2664e5803.

* Purge tracks linked to bad albumrelease

* fixup! migration missing titles, releases not in remote, artist cleaning
2018-12-16 01:00:17 -05:00
ta264 c392569a63 New: Update DB to store all releases for an album (#517)
* 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
2018-12-14 19:02:43 -05:00
ta264 e260a29b57 Improve the fuzzy matching (#522)
* Fixed: improve track matching

* Deal with tracks sequentially numbered across discs
2018-11-16 12:46:46 -05:00
Qstick 78a0b5f8b7 New: Setting to disable disk scan after artist refresh
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2018-11-10 23:50:21 -05:00
ta264 eadd6996ef Fuzzy matching (#508)
* Fixed: correctly match albums whose title is all special characters

* New: fuzzy matching on album and track names
2018-10-20 18:09:12 -04:00
gismo2004 9b0a7c60ed Fixed: Improve TrackMatching when title is slightly longer/shorter than DB (#491)
* improve TrackMatching

* Add unit test for TrackMatching

* rename NormalizeEpisodeTitle to NormalizeTrackTitle

* correct typo
2018-09-18 21:29:45 -04:00
Qstick ba96dad8c7 Fixed: UI and Command manager updates
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2018-08-28 23:01:02 -04:00
Qstick b506fd3ab7 Fixed: UI fixes from Sonarr
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2018-08-26 00:39:04 -04:00
Qstick 6581b3a2c5 New: UI Updates, Tag manager, More custom filters (#437)
* New: UI Updates, Tag manager, More custom filters

* fixup! Fix ScanFixture Unit Tests

* Fixed: Sentry Errors from UI don't have release, branch, environment

* Changed: Bump Mobile Detect for New Device Detection

* Fixed: Build on changes to package.json

* fixup! Add MetadataProfile filter option

* fixup! Tag Note, Blacklist, Manual Import

* fixup: Remove connectSection

* fixup: root folder comment
2018-08-07 20:57:15 -04:00
Qstick e6a43b2dc0 New: Added album disambiguation to UI and Naming [ex. Weezer (Blue Album)] (#431) 2018-07-20 18:33:56 -04:00
Daniel Underwood d7d4f62737 Changed: Force album refresh when artist refresh manually triggered (#374)
* Force album refresh when artist refresh manually triggered

* Refresh albums on single artist refresh
2018-05-28 03:49:34 -04:00
Qstick f7076c6c5b Changed: Modify Artist Update Intervals (#360) 2018-05-20 00:51:21 -04:00
Qstick ad6e651090 New: Show Release Title on Release Selection (#343)
Fixes #329
2018-05-04 18:34:03 -04:00
Qstick 9bd020a130 Fixed: Wanted cutoff page shows incorrect count 2018-04-15 00:49:16 -04:00
Joseph Milazzo b661344ba8 Parser Enhancements (#291)
* When matching tracks with metadata, ensure we also check their track number as some albums have two tracks with same title.
2018-04-13 06:30:56 -05:00
Qstick 4dd857ea30 Added: Additional Logging and Messaging for Albums 2018-04-08 23:14:26 -04:00
Qstick c833a6dc84 New: Enable Ratings for Albums 2018-04-08 02:48:34 -04:00