From ef7ce5eb1bbd62b31dd22a34e25be1dc50781ac2 Mon Sep 17 00:00:00 2001
From: Anders Melchiorsen <amelchio@nogoto.net>
Date: Wed, 14 Mar 2018 20:08:41 +0100
Subject: [PATCH] Ignore unsupported Sonos favorites (#13195)

---
 homeassistant/components/media_player/sonos.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/homeassistant/components/media_player/sonos.py b/homeassistant/components/media_player/sonos.py
index edd7d17c67d..2a12b59e7c7 100644
--- a/homeassistant/components/media_player/sonos.py
+++ b/homeassistant/components/media_player/sonos.py
@@ -426,7 +426,17 @@ class SonosDevice(MediaPlayerDevice):
         self._play_mode = self.soco.play_mode
         self._night_sound = self.soco.night_mode
         self._speech_enhance = self.soco.dialog_mode
-        self._favorites = self.soco.music_library.get_sonos_favorites()
+
+        self._favorites = []
+        for fav in self.soco.music_library.get_sonos_favorites():
+            # SoCo 0.14 raises a generic Exception on invalid xml in favorites.
+            # Filter those out now so our list is safe to use.
+            try:
+                if fav.reference.get_uri():
+                    self._favorites.append(fav)
+            # pylint: disable=broad-except
+            except Exception:
+                _LOGGER.debug("Ignoring invalid favorite '%s'", fav.title)
 
     def _subscribe_to_player_events(self):
         """Add event subscriptions."""
-- 
GitLab