From ff3858d60b9ce29ae6d66d7c70d31234780e5198 Mon Sep 17 00:00:00 2001 From: Hubert Nusser Date: Fri, 30 Sep 2016 21:34:21 +0200 Subject: [PATCH] fix login url, closes #8 fix display of live games in main menu --- addon.xml | 2 +- changelog.txt | 4 ++++ default.py | 39 +++++++++++++++++++++++++-------------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/addon.xml b/addon.xml index d79d8cb..9534d7a 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/changelog.txt b/changelog.txt index 4b19482..90e85cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +1.1.2 (2016/09/30) +- fix login url +- fix display of live games in main menu + 1.1.1 (2015/10/02) - change addon path translation method diff --git a/default.py b/default.py index 9bd6718..3f443e5 100644 --- a/default.py +++ b/default.py @@ -43,6 +43,16 @@ def build_url(query): return _addon_url + '?' + urllib.urlencode(query) +def get_current(json): + if 'isCurrent' in json and json['isCurrent'] == 'true': + if json['children']: + for child in json['children']: + result = get_current(child) + if result: + return result + else: + return json['href'] + ############## # main routine @@ -71,22 +81,23 @@ def bar(*args, **kw): mode = args.get('mode', None) if mode is None: - # load live games - response = urllib.urlopen("https://www.telekombasketball.de/feed/getTeaser.php").read() - xmlroot = ET.ElementTree(ET.fromstring(response)) - - for video in xmlroot.getiterator('VIDEO'): - if video.get('ISLIVESTREAM') == 'true' and video.get('ISLIVE') == 'true': - url = build_url({'mode': '3', 'id': video.get('ID'), 'scheduled_start': video.get('scheduled_start')}) - li = xbmcgui.ListItem(video.find('TITLE').text, iconImage=video.find('GAME_IMG').text, thumbnailImage=video.find('GAME_IMG').text) - li.setProperty('fanart_image', video.find('IMAGE_ORIGINAL').text) - li.setProperty('IsPlayable', 'true') - xbmcplugin.addDirectoryItem(handle=_addon_handler, url=url, listitem=li) - # load menu response = urllib.urlopen("https://www.telekombasketball.de/feed/getFilter.php").read() jsonResult = json.loads(response) - + + # load live games + live_target = get_current(jsonResult) + if live_target: + response = urllib.urlopen("https://www.telekombasketball.de/feed/getHomeFeed.php?targetID=8,20&template=2015&" + live_target).read() + xmlroot = ET.ElementTree(ET.fromstring(response)) + for video in xmlroot.getiterator('VIDEO'): + if video.get('ISLIVESTREAM') == 'true' and video.get('ISLIVE') == 'true': + url = build_url({'mode': '4', 'id': video.get('ID'), 'scheduled_start': video.get('scheduled_start')}) + li = xbmcgui.ListItem(video.find('TITLE').text, iconImage=video.find('GAME_IMG').text, thumbnailImage=video.find('GAME_IMG').text) + li.setProperty('fanart_image', video.find('IMAGE_ORIGINAL').text) + li.setProperty('IsPlayable', 'true') + xbmcplugin.addDirectoryItem(handle=_addon_handler, url=url, listitem=li) + for rounds in jsonResult['children']: url = build_url({'mode': '1', 'text': rounds['text']}) li = xbmcgui.ListItem(rounds['text'], iconImage='DefaultFolder.png') @@ -187,7 +198,7 @@ def bar(*args, **kw): state = str(time) + str(rand); browser.open("https://www.telekombasketball.de") - browser.open("https://accounts.login.idm.telekom.com/oauth2/auth?response_type=code&client_id=10LIVESAM30000004901BEKOBBL0000000000000&scope=openid&redirect_uri=http:%2F%2Fwww.telekombasketball.de%2Foauth.php%3Frequest%3Dlogin%26headto%3Dhttp:%2F%2Fwww.telekombasketball.de%2F&state="+state+"&claims=%7B%22id_token%22%3A%7B%22urn%3Atelekom.com%3Aall%22%3Anull%7D%7D") + browser.open("https://www.telekombasketball.de/service/oauth/login.php?headto=https://www.telekombasketball.de") browser.select_form(name="login") browser.form['pw_usr'] = _addon.getSetting('username')