Skip to content

Releases: mariusor/mpris-scrobbler

Fedora mon amour

01 May 13:27
v0.5.3
2c29c9b
Compare
Choose a tag to compare

This release includes a very small change for our oversealous setting of warnings to catch various distributions build issues.

Namely -Wfcf-protection=full only works on amd64 and x86 processors.

Many thanx to github user @gbcox for maintaining the Fedora user build for mpris-scrobbler which catches some of these issues.

As if millions of warnigns ... were suddenly silenced

28 Apr 13:00
v0.5.2
5683582
Compare
Choose a tag to compare

We removed a lot of the warnings raised by -Wpedantic and -Wextra.

The meson.build file now explicitly disables which warnings could not be avoided and has a little explanation about why.

We added an untested queue persistence mechanism at the exit of the scrobbler which will be paired with loading it and sending it at start time in the near future.

Just a little more robustness

06 Apr 15:20
v0.5.1
01b34f1
Compare
Choose a tag to compare

Added support for loading metadata from players that don't implement the MPRIS spec correctly by not wrapping exposed metadata in DBusVariants and instead they are exposing them directly as basic values.

The players that will have a better experience now are KDE's Elisa, and Clementine's successor, Strawberry.

It's finally happening

24 Apr 11:48
Compare
Choose a tag to compare

Fixes:

  • Fixing the longstanding bug of crashes due to improper libcurl usage.
  • Added libcurl debugging messages when running with increased log verbosity.
  • Also libevent debugging messages are better integrated into our log structure.
  • Fixed an issue with parsing the config file until the first encountered # character. Now # are treated as comment signs, while before we were only accepting ; (because the semicolon is the default ini comment marker).

Improvements:

  • Adding a retry mechanism for each API request that fails. It uses a back-off strategy with increasing delays.
  • Very verbose logging has become even more verbose with LINE, FILE, and function annotations.
  • libevent and libcurl debug messages can be enabled/disabled separately at build time using -Dlibeventdebug=true, -Dlibcurldebug=true.
  • Similarly added a flag for hiding the log messages generated when loading DBUS values: -Dlibdbusdebug=true.

Known issues

  • Currently using the spotifyd/spotpris2 combo can result in a freeze with high CPU usage in some cases (as far as I could tell, it's related to spotpris2 crashing or spotifyd being restarted). I have no clear way to find the issue at the moment.
  • Sometimes the listenbrainz API tries to access some freed memory and the application crashes. This problem I wasn't able to consistently reproduce and fix.

If you encounter them I would appreciate if you could install a debug version and provide me with a coredump or a consistent repro method.

Full Changelog: v0.4.99...v0.5.0

Never say never, again

18 Apr 18:01
Compare
Choose a tag to compare
Pre-release

v0.4.99: Never say never, again

Another, another pre-release before v0.5.

This adds the last feature I wanted in, which is to trigger a now_playing and a queue event when starting the scrobbler and a music player is already playing music.

This version also includes a fix for breaking the list of active players when one is closed. This issue was unreported, probably due to low usage of multiple players at the same time. :D

The last issue I have that prevents me from tagging v0.5 is that currently there are some weird locks when running spotifyd, spotpris2, spotify-tui combo and restarting spotifyd.

Full Changelog: v0.4.95...v0.4.99

Any kick in the behind is a step forward

17 Apr 14:19
Compare
Choose a tag to compare

Another pre-release before v0.5, this one makes the pending connections a simple array instead of an stb_array.

The change was warranted because we had various memory issues when trying to clean them up from different callbacks.

Ideally I'll remove the other places where stb_array is needed so we can simplify the code.

Full Changelog: v0.4.90...v0.4.95

Welcome back old friend

13 Apr 07:33
Compare
Choose a tag to compare
Pre-release

Hopefully this is the last intermediary release until v0.5.

It contains a fix for a bug a libcurl change exposed around February: #86

I added some extra logging for libcurl debug messages and added more information to the logs in general when using maximum verbosity.

This release might have some issues with memory leaking, but I hope to have them fixed by the next one. This is a stop-gap to ensure people that are using the application have it working again.

Full Changelog: v0.4.0.1...v0.4.90

Why even bother

26 Oct 18:14
Compare
Choose a tag to compare
Why even bother Pre-release
Pre-release

Test release for fixing #79.

The Next Generation

31 May 10:08
Compare
Choose a tag to compare

Changes

  • Added a hard dependency on DBus version 1.9 or higher to avoid an issue with missing function.

Improvements:

  • Adding support for mpris-player XDG base directory compliant config file. See man 5 mpris-scrobbler-config
  • Adding player ignore capability in the config file with syntax:
; player name - case sensitive
ignore = Spotify
; dbus service name - also case sensitive
ignore = org.mpris.MediaPlayer2.vlc
  • Better handling of loading just the modified MPRIS properties.
  • Refining the resolution for which MPRIS properties have changed, now every mpris property is tracked independently.
  • Better handling for tracks with multiple artists.
  • Better handling for tracks with multiple MusicBrainz fingerprints.
  • Better handling of corner cases when multiple players are active at the same time.
  • Better handling of signon helper external commands invocations.
  • Improved logic of not adding now_playing/queue events in the case of tracks that we can't fully load from DBus.

Fixes:

  • Avoiding dynamic memory allocation as much as possible.
  • Fixes for crashes due to invalid bytes being loaded from DBus.
  • Fixes for loading invalid strings into scrobbles as a side effect of uninitialized memory.
  • Fixes for crashes in the signon helper.
  • Fixes for writing the pid file with every configuration load leading to being overwritten unintentionally.
  • Fixes for the signon helper sending SIGHUP to the wrong pid.
  • Fixes a crash to the mpris-scrobbler-signon binary when getting the token for the first time.
  • Fixes allowing the execution of the invalid session command for the listenbrainz api, which would remove an existing token if it exists in the credentials file.
  • Fixes a long standing bug when the scrobbler would hang randomly. The fix was to verify arrays coming from DBus before trygin to iterate over them, in some cases the array had zero elements which would make the DBus library enter an infinite loop.

The "Next Generation: Beta 4"

27 May 10:39
Compare
Choose a tag to compare
Pre-release

Fixing a long standing bug when the scrobbler would hang randomly.

The fix was to verify arrays coming from DBus before trying to iterate over them, in some cases the array had zero elements which would make the DBus library enter an infinite loop.

I added a hard dependency on DBus version 1.9 or higher to avoid an issue with missing function.

Improved logic of not adding now_playing/queue events in the case of tracks that we can't fully load from DBus.