File python-soco.changes of Package python-soco
-------------------------------------------------------------------
Thu Aug 5 09:48:07 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Do not build the python2 flavor which is not supported anymore.
-------------------------------------------------------------------
Thu Aug 5 09:00:34 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.23.2:
* Raise exception if Service command not supported. This raises
a well-formed exception if a service call is made to a device
that doesn't support it, e.g., interrogating the volume of a
Boost device.
- Update to version 0.23.1:
* Hardcode Spotify & Tidal service numbers for ShareLink plugin
- Update to version 0.23.0:
* Add a contactable() function to filter out devices that are not
reachable.
* Add end_direct_control_session() method to stop remote control
sessions (e.g., Spotify Connect).
* Add get_current_media_info() method, useful for determining
details of radio streams.
* Add plugin for playback of Spotify and Tidal ShareLinks
(experimental).
* Restore compatibility for Sonos S1 systems running firmware
versions earlier than 10.1.
* Logging severity has been adjusted in some areas to reduce the
volume of logging output.
- Update to version 0.22.6:
* This is a patch release that contains a fix for event
unsubscription logic, to ensure that event unsubscriptions are
actually processed and sent to the Sonos players
- Update to version 0.22.5:
* This release reverts the breaking change introduced (briefly)
in v0.22.4. Its functionality is the same as that of v0.22.3
- Update to version 0.22.4:
* This release introduced a breaking change, and has been
deprecated. This is a patch release containing a fix for a
serious bug in the event subscription logic, in which
unsubscriptions were never being processed
- Update to version 0.22.3:
* Cleanup async_events renewal logging and exceptions
* Ignore unofficial DIDL subclasses denoted by '.#'
* Extract radio stream metadata when TYPE=SNG
* Raise exceptions on aiohttp status in async event handler
- Update to version 0.22.2:
* Fix race condition in creating the client session with
events_asyncio
* Fix manual subscription renewals and unsubscibe failure
handling with events_asyncio
- Update to version 0.22.1:
* This is a patch release that removes a hard dependency on the
aiohttp package, introduced in v0.22.0 to support the new
events-asyncio functionality. The inclusion of this package was
causing potential installation errors on some platforms.
If you want to use events_asyncio, either install the aiohttp
package manually, or use pip install -U "soco[events_asyncio]"
when installing/updating SoCo.
- Update to version 0.22.0:
* Add an available_actions property to determine what actions are
currently permitted on a player.
* Add the ability to remove alarms from the system by Alarm ID.
* Add shuffle and repeat as directly gettable/settable properties
of a player.
* Add the ability to specify a track number when using seek.
* Add events handling using asyncio, as an alternative to the
standard and Twisted events approaches.
* We've made a broad set of changes to remove legacy code
related to Python 2 compatibility.
- Update to version 0.21.3:
* Improve handling of network errors
* Fix for Python urllib parsing
* Suppress new Pylint 2.7 error
- Update to version 0.21.2:
* Catch client exceptions on event thread
* Do not refresh zone group cache on join/unjoin
* Always restore volume when restoring a snapshot
- Update to version 0.21.1:
* Recognize Arc SL as soundbar
- Update to version 0.21.0:
* This version contains significant improvements to the speaker
discovery process, which should address most of the common
problems that are encountered.
* Multi-household Sonos systems can now be discovered and
controlled.
* The AudioIn service has been added, providing access to Line In
operations and events.
* A number of additional miscellaneous speaker state controls
have been provided, for speaker buttons, fixed volume output,
and Trueplay. The battery status of Sonos Move speakers can
also now be obtained. The music_source property on SoCo objects
provides a convenient way to determine what type of source is
being played by a speaker.
* SoCo 0.21 is now fully Python 3.9 compatible, requires
Python 3.5+, and is no longer compatible with Python 2.x.
* New Features and Improvements
+ Add support for network scan discovery, including allowing
multi-household systems to be discovered.
+ Add the AudioIn service for access to Line In operations and
events.
+ Add the ability to inspect and set Fixed Volume output.
+ Add the ability to inspect and set whether speaker buttons
are enabled.
+ Add the ability to inspect and set Trueplay enablement.
+ Add the ability to determine the battery state of Sonos Move
speakers.
* Bug Fixes
+ Improve zone group state caching to accommodate
multi-household systems: PR #656. (Note: possible breaking
change: if you've previously been setting the
soco.core.zone_group_state_shared_cache.enabled property,
this property is no longer global but is instead now a
private property of SoCo instances.)
+ When restoring snapshots, do not try to restore
bass/treble/loudness on devices with fixed volume enabled.
+ Ensure that all relevant NICs and IP addresses are included
in multicast speaker discovery.
* Developer Improvements
+ Numerous fixes to allow the documentation to build cleanly.
+ Full Python 3.9 compatibility, including updated check jobs.
+ Code changes to allow Pylint and Black to be updated to their
most recent versions.
- Update to version 0.20:
* Among the additions this time are support for adding stereo
pairs, proper categorization of Sonos Amp as a playbar to add
proper support for 'night sound' and 'speech enhancement' and
finally a fix for a long running issue where vendor extended
DIDL-Lite classes would cause events to crash without specific
code added for each one. See the full list of additions and
bugfixes below.
* SoCo (Sonos Controller) is a Python package that allows you to
programmatically control Sonos speakers.
* New Features and Improvements
+ Add support for creating and separating stereo pairs of
speakers. Note: works with dissimilar Sonos speakers if
required.
+ Add support for autogenerating vendor extended DIDL-Lite
classes. This should fix all the problems where SoCo would
crash if some vendor specific data type is unknown.
+ Categorize Sonos Amp as a playbar in order to provide support
for 'night sound' and 'speech enhancement'.
+ If port 1400 is in use, the next available 100 ports will be
tried.
* Bugfixes
+ Fix bug where data_structures_upgrade would fail on items
that has no uri.
+ Process share browsing correctly.
* Developer improvements
+ Format all soco main, test and example code with the black
code formatter (https://github.com/psf/black) and make it
mandatory going forward including a TravisCI check.
+ Improve test_remove_playlist_bad_id() to handle the case of
no existing playlists.
- Rebase patch:
* dont-require-test-modules.patch
-------------------------------------------------------------------
Thu Jun 11 08:34:58 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.19:
* New Features and Improvements
- Added class DidlRecentShow to the data_structures module to
implement the added object.item.audioItem.musicTrack.recentShow
DIDL-Lite object type. Used for podcasts etc. Pull request #677.
- Add support for Python 3.8, pull reques #679
- Add methods list_library_shares() and delete_library_share()
to MusicLibrary. Partially addresses issue #678.
- Add a balance property to the SoCo class, allowing get/set of
speaker balance, pull request #693. Addresses issue #692.
- Add the set_relative_volume() method to the SoCo class, pull
request #687
- Add unit test for
soco.music_library.MusicLibrary.delete_library_share() method,
pull request #694
- Add deprecation warning concerning the removal of Python 2.7
support, pull request #697
- Add group volume operations, pull request #688
* Bugfixes
- Fixed broken link in loudness docstring, issue #671
- In events, fixed bug affecting some users in code to determine
system’s own IP address. Some systems requires a valid port to
be used (not port 0), so we use config.EVENT_LISTENER_PORT.
Pull request #680.
- Copy metadata from DidlItem to MusicServiceItem in get_queue()
and events. Pull request #589. Closes issues #535, #547 and #552.
- Fixed a bug (avoid trying to iterate a None) in the discovery
module, commit c8e4a24
-------------------------------------------------------------------
Fri Jan 31 11:29:02 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.18.1:
* Fix a single bug concerning events.
- Update to version 0.18:
* New Features and Improvements
+ Allow the user to choose how the event listener is implemented
and a lot of other event code improvements as outlined below.
- A major feature addition is to allow the user to choose how the
event listener is implemented. The default is for the event
listener to use the requests library and run in a thread. This
update allows the user to run the event listener using the
twisted.internet library, by setting the config.EVENTS_MODULE
module to point to the soco.events_twisted module. See the example
in events_twisted.
- Stops the event listener when the last active subscription is
unsubscribed.
- Raise soco.exceptions.SoCoException on an attempt to subscribe a
subscription more than once (use soco.events.Subscription.renew
instead).
- Allow an optional strict parameter for
soco.events.Subscription.subscribe, soco.events.Subscription.renew
and soco.events.Subscription.unsubscribe. If set to False, Exceptions
will be logged rather than raised. Default: True
- Upon autorenewal, call soco.events.Subscription.renew with the strict
flag set to False, so that any Exception is logged, not raised. This
is because there is no calling code to catch an Exception.
- Provide for calling code to set
soco.events.Subscription.auto_renew_fail to refer to a callback
function. If an Exception occurs upon autorenewal, this callback will
be called with the Exception as the sole parameter.
- If an Exception occurs upon soco.events.Subscription.subscribe or
soco.events.Subscription.renew, cancel the subscription, unless the
Exception was a SoCoException on soco.events.Subscription.subscribe.
For example, if an Exception occurs because the network went down,
the subscription will be canceled.
- Use a threading lock with soco.events.Subscription.subscribe,
soco.events.Subscription.renew and soco.events.Subscription.unsubscribe,
because autorenewal occurs from a thread.
+ Add a simple soco.data_structures.DidlPlaylistContainerTracklist class to
the soco.data_structures module . The class is used by Sonos when Sonos
Speakers are controlled by Spotify Connect. The absence of the class from
the data_structures module causes errors.
+ Remove logging of UPnP failures
- Update to version 0.17:
* New Features and Improvements
+ Add the is_soundbar property to the SoCo class to indicate
whether or not the current instance represents a Play:Bar, a
Play:Base, or a Beam and, when appropriate, enable features like
Night and Dialog mode.
* Bugfixes
+ Fix discovery which was broken as a consequence of API changes in
Sonos software version 10.1.
+ Fix parsing of favorites which was broken as a consequence of API
changes in Sonos software version 10.1.
- Update to version 0.16:
* New Features and Improvements
+ Allow the user to configure the event listener IP address that is sent
to the Sonos speakers. The default is to auto detect, but it can now be
overridden. This allows for more complex network configurations (e.g.
using Docker containers) to be supported.
+ The play_uri method now accepts title arguments that need XML escaping.
+ A harmless “Could not handle track info” warning has been removed.
+ Let from_didl_string throw DIDLMetadataErrors, allowing them to be caught
in the event handling code.
+ Added support for object.item.audioItem.audioBook
* Bugfixes
+ Fix DidlMusicAlbum inheriting fields from DidlAudioItem instead of
DidlAlbum
- Update to version 0.15:
* New Features and Improvements
+ Add __enter__ and __exit__ methods to Subscription, for automatic
unsubscription in a with-block
+ Add __enter__ and __exit__ methods to Snapshot, for automatic snapshot
and restore in a with block
+ Handle default value / allowed value range in Service.iter_actions and
format the resulting actions
+ Allow keyword arguments in Service commands
+ Auto deploy new tagged releases to PyPI
+ Documentation updates
* Bugfixes
+ Prevent parsing exceptions during event handling from killing the
exception thread. Instead, return a DidlFault, which will reraise the
exception when the user tries to use it
+ Fixed the set returned by discover() being modified later
+ Fixed regression in send_command
+ Fixed regression due to removed deprecated methods
+ Improved error handling with speakers not associated to a room
* Backwards Compatability
+ Dropped support for Python 3.3
+ Removed the deprecated methods which were moved in 0.12 from core.py
to music_library.py and move the assoctiated tests
- Update to version 0.14:
* New Features and Improvements
+ Add support for Sonos favorites, which can now be browsed and played
through the usual methods.
+ Revised the play_local_files examples including a off-by-one bug fix,
configuration as command line argument, IP address auto detection and
more robust Sonos player selection.
+ Handle QueueID properly in event xml.
+ Further documentation updates
* Bugfixes
+ Small bugfix to stop an error where None would be returned by
metadata.findtext. Instead, an empty string is returned.
+ Fix a race that could lead to events being missed shortly after a
subscription was started.
+ Don't throw exceptions when parsing metadata with missing/empty tags,
to fix event errors.
-------------------------------------------------------------------
Sat Feb 17 10:06:00 UTC 2018 - alarrosa@suse.com
- Update to version 0.13:
* New Features and Improvements
* The IP address used by the events listener can be configured
* Add support for night mode and dialog mode on devices supporting the
respective feature.
* Add queue-able data structures for the music service items
* Add a method for queueing multiple items with a single request
* Add methods to get and set the uri(s) of a DidlObject.
* Add support for line in from other speakers
* Enhance add_to_queue() to with optional position argument
* Added by_name function to discovery to be able to get a device by
player_name
* allow choice of how to play streams in play_uri (override Sonos default
with force_radio=True)
* Added ramp_to_volume() method to smoothly change the volume
* Added FAQ, documentation and two examples to explain using SoCo's
Snapshot function.
* Update documentation for add_uri_to_queue
* Added a FAQ section to the docs with play_uri and play local files
answers.
* A few queue related micro examples was added to the examples page in the
docs.
* Further documentation updates
* Bugfixes
* Fixes an issue where restarting an application that had subscribed to
events sometimes causes an error when the events are delivered to the
new instance.
* Fixes an issue where multiple threads trying to subscribe to events in
parallel would sometimes cause SoCo to attempt to create multiple event
listener servers and fail on socket.bind().
* Fixes an issue where SoCo would not recognize
object.container.playlistContainer.sonos-favorite when receiving events.
* Fixes a bug in play_uri where it would not play a http or https prefixed
radio stream due to a change in the Sonos API . This change fixes it by
replacing the two http type prefixes with Sonos' x-rincon-mp3radio://
prefix.
* Fixes an exception being raised on Windows with discover. The error was
caused by socket.getsockname raising an exception on Windows with and
unconnected unbound socket. Fixed by now simply logging the sockets.
* Change to use SoCo method to determine coordinator in Snapshot
* Prevent error when queue started from Alexa and using snapshot. Currently
there is no was to restart a cloud queue from SoCo, this PR just prevents
Snapshot causing an error.
* Fix add_multiple_to_queue fails with too many items
* Fixed log level
* Backwards Compatability
* Dropped support for Python 2.6 and added support for 3.6
-------------------------------------------------------------------
Sat Jun 10 12:10:13 UTC 2017 - alarrosa@suse.com
- Initial release of python-soco 0.12
- Add dont-require-test-modules.patch so modules only needed for tests
are not required since %check is disabled