Skip to content

Releases: geo-martino/musify

v1.1.7

20 Sep 20:52
9b936c7
Compare
Choose a tag to compare

Fixed

  • Handle bad values for bpm and compilation in :py:class:.TagReader by returning None.

v1.1.6

25 Jul 21:39
Compare
Choose a tag to compare

Fixed

  • Remove '&' character handling in :py:class:.XMLPlaylistParser. Was being handled twice as it is already
    handled by the xmltodict package.

v1.1.5

25 Jul 20:45
Compare
Choose a tag to compare

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

25 Jul 18:08
Compare
Choose a tag to compare

Added

  • :py:class:.LocalPlaylist now allows setting of the path property
  • :py:class:.LocalLibrary now allows setting of the name property. Added name 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's playlist_folder

v1.1.3

23 Jul 15:48
Compare
Choose a tag to compare

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

21 Jul 17:40
Compare
Choose a tag to compare

Changed

  • :py:meth:.File.get_filepaths now ignores hidden files.
  • Replace os.makedirs with Pathlib implementation of mkdirq everywhere.

v1.1.1

12 Jul 22:26
Compare
Choose a tag to compare

Changed

  • Update aiorequestful version to 1.0

v1.1.0

11 Jul 05:54
Compare
Choose a tag to compare

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 a new package <https://github.com/geo-martino/aiorequestful>_.
  • Moved all enum definitions to types modules and removed all enum modules.

Documentation

  • Fix references to non-existent packages + add missing packages in API reference index

v1.0.2

27 Jun 15:38
Compare
Choose a tag to compare

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 a cache hit or a HTTP 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.

v1.0.1

12 Jun 02:22
Compare
Choose a tag to compare

Documentation

  • Update PyPI classifiers for release
  • Update readme