From 91465715e70fefedfdc5a0131e6524c561115332 Mon Sep 17 00:00:00 2001 From: Jordan Doyle Date: Sat, 22 Feb 2020 20:03:26 +0000 Subject: [PATCH] Return a helpful error when track metadata isn't supported --- src/device.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/device.rs b/src/device.rs index f14109d..e355bcc 100644 --- a/src/device.rs +++ a/src/device.rs @@ -542,11 +542,14 @@ true, )?; - let metadata = Element::parse( - element_to_string(resp.get_child("TrackMetaData") - .ok_or_else(|| SonosError::ParseError("failed to find TrackMetaData element"))?) - .as_bytes(), - )?; + let metadata = element_to_string(resp.get_child("TrackMetaData") + .ok_or_else(|| SonosError::ParseError("failed to find TrackMetaData element"))?); + + if metadata == "NOT_IMPLEMENTED" { + return Err(SonosError::ParseError("track information is not supported from the current source").into()); + } + + let metadata = Element::parse(metadata.as_bytes())?; let metadata = metadata .get_child("item") -- rgit 0.1.3