Add dataclass and pathlib imports in taglib.py
Add clean_filename, ParseData, and extract_artist_title functions in
taglib.py
Modify get_tags function in taglib.py to use extract_artist_title
function
Modify LyricsProvider class in lyrics.py to add timeout parameter in
session.get
Remove parse_artist_from_filename and parse_title_from_filename
functions in utils/parsers.py
Add split_artists function in utils/parsers.py
Remove parse_artist_from_filename and parse_title_from_filename
functions in utils/parsers.py
Add remove_prod function in utils/parsers.py
Refactor code and improve code readability
+ assign default artist separators if db is empty
+ add instrumental to album version
+ check if album is a single by checking og_title and current title
+ hard code juice wrld artist name in model
+ set album aritst to first artist if track has no album artist
+ rewrite get_base_album_title regex to use existing album versions
+ misc
+ add route to get all settings
+ add route to set any setting
+ add untested migration to add settings into settings db
+ compress json in api responses using FlaskCompress
+ serve gziped assets if browser accepts encoded files
+ misc
+ delete older migrations ... oops
+ change migratrions from "migrations" to "dbmigrations"
+ restructure migrations, order them based on release version
+ add a utils/decorators.py file with a coroutine decorator
track thumbnail from the first track in an album that has one.
+ rewrite Populate.remove_modified with sets
+ clean the SqliteManager utility class
+ Rewrite ProcessTrackThumbnails to use a process pool instead of a thread pool
+ rewrite track store's remove_tracks_by_filepaths to utilize sets