🏡 index : ~doyle/sonos.rs.git

author Jordan Doyle <jordan@doyle.la> 2020-02-22 20:03:26.0 +00:00:00
committer Jordan Doyle <jordan@doyle.la> 2020-02-22 20:03:26.0 +00:00:00
commit
91465715e70fefedfdc5a0131e6524c561115332 [patch]
tree
d207f850109e5bce5203b9829d0a14ae970aa9dd
parent
7f16481f3ef41c1df80b0d44bbb33a9a50bf7305
download
91465715e70fefedfdc5a0131e6524c561115332.tar.gz

Return a helpful error when track metadata isn't supported



Diff

 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")