Releases: geo-martino/musify
Releases · geo-martino/musify
v1.1.8
v1.1.7
Fixed
- Handle bad values for bpm and compilation in :py:class:
.TagReader
by returningNone
.
v1.1.6
Fixed
- Remove '&' character handling in :py:class:
.XMLPlaylistParser
. Was being handled twice as it is already
handled by thexmltodict
package.
v1.1.5
Fixed
- Bug in escaping of '&' characters when export :py:class:
.XAutoPF
playlists with the :py:class:.XMLPlaylistParser
.
Was previously escaping multiple times when already escaped e.g. '&' > '&'.
Now correctly skips already occurrences of '&'.
v1.1.4
Added
- :py:class:
.LocalPlaylist
now allows setting of thepath
property - :py:class:
.LocalLibrary
now allows setting of thename
property. Addedname
as an init parameter too.
Changed
- :py:meth:
.LocalLibrary.merge_playlists
now updates the path of new playlists added to the library to be relative
to the library'splaylist_folder
v1.1.3
Fixed
- When given an empty :py:class:
.M3U
playlist file, produces expected result i.e. an empty playlist.
Previously always added all given tracks to playlist when calling :py:meth:.M3U.load
v1.1.2
Changed
- :py:meth:
.File.get_filepaths
now ignores hidden files. - Replace os.makedirs with Pathlib implementation of
mkdir
q everywhere.
v1.1.1
Changed
- Update aiorequestful version to 1.0
v1.1.0
Changed
- :py:class:
.ItemDownloadHelper
only ever takes the first field when the singular name of a field is given
and many values are available for that field. e.g. only ever takes the first artist when multiple artists are present
and the requested field is 'artist' and not 'artists' - :py:class:
.RemoteCollectionLoader
now inherits from :py:class:.MusifyItem
interface.
The class already implemented all necessary methods for this interface and was always designed
to be an implementation of the :py:class:.MusifyItem
interface. - Rename
print
method on :py:class:.MusifyLogger
to :py:meth:.MusifyLogger.print_line
Removed
- Implementation of REST API handling including all cache + authorisation implementations.
Separated this off to anew package <https://github.com/geo-martino/aiorequestful>
_. - Moved all enum definitions to
types
modules and removed allenum
modules.
Documentation
- Fix references to non-existent packages + add missing packages in API reference index
v1.0.2
Added
- Expanded error message on :py:class:
.DynamicProcessor
processor lookup exception. - Improved logging of bad responses on :py:class:
.RequestHandler
wait_max
time to cap wait time between requests for :py:class:.RequestHandler
- Add log on :py:class:
.CachedSession
for when either acache hit
or aHTTP request
happens.
Removed
limiter_deduplication
attribute from print output on :py:class:.XAutoPF
Fixed
- Bug in :py:class:
.XMLLibraryParser
which would not read 'Playlists' keys. - Moved 'check api' logic later when deleting playlists in :py:class:
.RemoteItemChecker
to ensure API is not checked on close when checker has not actually run. - :py:class:
.RequestHandler
now handles wait and backoff logic asynchronously. - Tracks on playlists from the JSON output of :py:class:
.LocalLibrary
now display correctly.
Previously showed 'null' for every track.