Bug Fixes
-
Search by artist and track without album, didn't realise tracks without albums were actually throwing a null exception.
-
General bug fixes, like missing null check, wrong variables assigned in an in-line if etc.
Improvements
-
Made 'upload check' more efficient by more carefully checking variables and not iterating over lists when there's no need (i.e., the cache, when it's a new upload) and also not re-querying YT Music for an alternative album or track name when a change hasn't even been made.
-
Issues and Uploads log now has sortable and re-orderable columns.
-
MBID and ReleaseMBID are fetched in 1 MusicBrainz request now rather than 2 (releaseMBID exists in recordings object in a sub-list), so more efficient less requests.
Further Development
-
Uploads and music file check now fetches the YT Music entity ID for the song, which is used when 'deleting' a song -> So eventually, can make an option on the UI to: "Delete from YouTube Music When Deleting From Personal Library".
-
Added an 'Idle Processor': This processor runs when the application is Idle to attempt to fill out missing data in the database, for example any missing MBIDs and YT Entity IDs. Every 5 second (to keep requests to a minimum) it will get a random MusicFile entry from the database with the missing information and make a request to see if it's a available. This is particular useful as we've disabled the 'MusicBrainz Lookup' when doing a preliminary scan of the library folder to check for already uploaded songs, seen as though the scan can turn over 20 song per second (max), but MusicBrainz only allows for 1 request per second from the same IP.
-
Now, when the application starts (and every 2 hours), the application requests all the Uploaded artists from YouTube Music and caches them. The reason being, that the standard 'check for already uploaded' uses the search API, which isn't always reliable. So now, if the search yields no results it will refer to the cached artists, and then fetches all the songs by that artist and does
a cross check against them. The result is that it reduces a lot of 're-uploads' when the meta data of the music file doesn't match 'enough' to what's listed on YouTube Music.
General
-
A lot of refactoring and cleaning
-
Documentation update