<commit_before>*******
Changes
*******

This change log is used to track all major changes to Mopidy.


v0.5.0 (in development)
=======================

Since last time we've added support for audio streaming to SHOUTcast servers
and fixed the longstanding playlist loading issue in the Spotify backend. As
always the release has a bunch of bug fixes.

Please note that 0.5.0 requires some updated dependencies, as listed under
*Important changes* below.

**Important changes**

- If you use the Spotify backend, you *must* upgrade to libspotify 0.0.8 and
  pyspotify 1.2. If you install from APT, libspotify and pyspotify will
  automatically be upgraded. If you are not installing from APT, follow the
  instructions at :doc:`/installation/libspotify/`.

- If you have explicitly set the :attr:`mopidy.settings.SPOTIFY_HIGH_BITRATE`
  setting, you must update your settings file. The new setting is named
  :attr:`mopidy.settings.SPOTIFY_BITRATE` and accepts the integer values 96,
  160, and 320.

- Mopidy now supports running with 1 to N outputs at the same time. This
  feature was mainly added to facilitate SHOUTcast support, which Mopidy has
  also gained. In its current state outputs can not be toggled during runtime.

**Changes**

- Local backend:

  - Fix local backend time query errors that where coming from stopped
    pipeline. (Fixes: :issue:`87`)

- Spotify backend:

  - Thanks to <NAME>'s recent work on updating and improving
    pyspotify, stored playlists will again load when Mopidy starts. The
    workaround of searching and reconnecting to make the playlists appear are
    no longer necessary. (Fixes: :issue:`59`)

  - Replace not decodable characters returned from Spotify instead of throwing
    an exception, as we won't try to figure out the encoding of non-UTF-8-data.

- MPD frontend:

  - Refactoring and cleanup. Most notably, all request handlers now get an
    instance of :class:`mopidy.frontends.mpd.dispatcher.MpdContext` as the
    first argument. The new class contains reference to any object in Mopidy
    the MPD protocol implementation should need access to.

  - Close the client connection when the command ``close`` is received.

  - Do not allow access to the command ``kill``.

  - ``commands`` and ``notcommands`` now have correct output if password
    authentication is turned on, but the connected user has not been
    authenticated yet.

- Command line usage:

  - Support passing options to GStreamer. See :option:`--help-gst` for a list
    of available options. (Fixes: :issue:`95`)

  - Improve :option:`--list-settings` output. (Fixes: :issue:`91`)

- Tag cache generator:

  - Made it possible to abort :command:`mopidy-scan` with CTRL+C.

  - Fixed bug regarding handling of bad dates.

  - Use :mod:`logging` instead of ``print`` statements.

  - Found and worked around strange WMA metadata behaviour.
<commit_msg>Add --interactive feature to changelog<commit_after>*******
Changes
*******

This change log is used to track all major changes to Mopidy.


v0.5.0 (in development)
=======================

Since last time we've added support for audio streaming to SHOUTcast servers
and fixed the longstanding playlist loading issue in the Spotify backend. As
always the release has a bunch of bug fixes.

Please note that 0.5.0 requires some updated dependencies, as listed under
*Important changes* below.

**Important changes**

- If you use the Spotify backend, you *must* upgrade to libspotify 0.0.8 and
  pyspotify 1.2. If you install from APT, libspotify and pyspotify will
  automatically be upgraded. If you are not installing from APT, follow the
  instructions at :doc:`/installation/libspotify/`.

- If you have explicitly set the :attr:`mopidy.settings.SPOTIFY_HIGH_BITRATE`
  setting, you must update your settings file. The new setting is named
  :attr:`mopidy.settings.SPOTIFY_BITRATE` and accepts the integer values 96,
  160, and 320.

- Mopidy now supports running with 1 to N outputs at the same time. This
  feature was mainly added to facilitate SHOUTcast support, which Mopidy has
  also gained. In its current state outputs can not be toggled during runtime.

**Changes**

- Local backend:

  - Fix local backend time query errors that where coming from stopped
    pipeline. (Fixes: :issue:`87`)

- Spotify backend:

  - Thanks to <NAME>'s recent work on updating and improving
    pyspotify, stored playlists will again load when Mopidy starts. The
    workaround of searching and reconnecting to make the playlists appear are
    no longer necessary. (Fixes: :issue:`59`)

  - Replace not decodable characters returned from Spotify instead of throwing
    an exception, as we won't try to figure out the encoding of non-UTF-8-data.

- MPD frontend:

  - Refactoring and cleanup. Most notably, all request handlers now get an
    instance of :class:`mopidy.frontends.mpd.dispatcher.MpdContext` as the
    first argument. The new class contains reference to any object in Mopidy
    the MPD protocol implementation should need access to.

  - Close the client connection when the command ``close`` is received.

  - Do not allow access to the command ``kill``.

  - ``commands`` and ``notcommands`` now have correct output if password
    authentication is turned on, but the connected user has not been
    authenticated yet.

- Command line usage:

  - Support passing options to GStreamer. See :option:`--help-gst` for a list
    of available options. (Fixes: :issue:`95`)

  - Improve :option:`--list-settings` output. (Fixes: :issue:`91`)

  - Added :option:`--interactive` for reading missing local settings from
    ``stdin``. (Fixes: :issue:`96`)

- Tag cache generator:

  - Made it possible to abort :command:`mopidy-scan` with CTRL+C.

  - Fixed bug regarding handling of bad dates.

  - Use :mod:`logging` instead of ``print`` statements.

  - Found and worked around strange WMA metadata behaviour.

{'fraction_non_alphanumeric': 0.0831357941076871, 'fraction_numerical': 0.01015916017609211, 'mean_word_length': 3.825980392156863, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5475578', 'n_tokens_mistral': 1689, 'n_tokens_neox': 1613, 'n_words': 779}