From 6927753db6d9a0cc508bfec5ad576e8a1bf6f985 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 2 Jul 2015 02:07:50 +0200 Subject: [PATCH] Some work on sync lists. --- plexpy/plextv.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 5adbb31a..f2273dd5 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -316,8 +316,12 @@ class PlexTV(object): device_model = self.get_xml_attr(device, 'model') device_last_seen = self.get_xml_attr(device, 'lastSeenAt') device_user_id = self.get_xml_attr(device, 'userID') - device_username = plex_watch.get_user_details(user_id=device_user_id)['username'] - device_friendly_name = plex_watch.get_user_details(user_id=device_user_id)['friendly_name'] + try: + device_username = plex_watch.get_user_details(user_id=device_user_id)['username'] + device_friendly_name = plex_watch.get_user_details(user_id=device_user_id)['friendly_name'] + except: + device_username = '' + device_friendly_name = '' for synced in a.getElementsByTagName('SyncItems'): sync_item = synced.getElementsByTagName('SyncItem') @@ -348,8 +352,12 @@ class PlexTV(object): settings_video_quality = self.get_xml_attr(settings, 'videoQuality') settings_video_resolution = self.get_xml_attr(settings, 'videoResolution') - rating_key = self.get_xml_attr( - item.getElementsByTagName('Location')[0], 'uri').rpartition('%2F')[-1] + if self.get_xml_attr(item.getElementsByTagName('Location')[0], 'uri').endswith('%2Fchildren'): + clean_uri = self.get_xml_attr(item.getElementsByTagName('Location')[0], 'uri')[:-11] + else: + clean_uri = self.get_xml_attr(item.getElementsByTagName('Location')[0], 'uri') + + rating_key = clean_uri.rpartition('%2F')[-1] sync_details = {"device_name": device_name, "platform": device_platform,