import urllib
import urllib2
import json
+from xbmcaddon import Addon
from urlparse import parse_qsl
from utils import noop, log
"""
params = self.parse_paramters(paramstring=paramstring)
+ # open foreign settings dialog
+ if 'mode' in params.keys() and params['mode'] == 'openSettings':
+ return self.open_settings(params['url'])
+
# log out the user
if 'action' in params.keys() and params['action'] == 'logout':
return self.call_netflix_service({'method': 'logout'})
user_list_id : :obj:`str`
Type of list to display
"""
- video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids', 'type': type})
+ # determine if we´re in kids mode
+ user_data = self.call_netflix_service({'method': 'get_user_data'})
+ profiles = self.call_netflix_service({'method': 'list_profiles'})
+ is_kids = profiles.get(user_data['guid']).get('isKids', False)
+ # fetch video lists
+ if is_kids == True:
+ video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids_for_kids'})
+ else:
+ video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids', 'type': type})
# check for any errors
if self._is_dirty_response(response=video_list_ids):
return False
if self.kodi_helper.has_cached_item(cache_id=cache_id):
video_list_ids = self.kodi_helper.get_cached_item(cache_id=cache_id)
else:
+ # determine if we´re in Kids profile mode
+ user_data = self.call_netflix_service({'method': 'get_user_data'})
+ profiles = self.call_netflix_service({'method': 'list_profiles'})
+ is_kids = profiles.get(user_data['guid']).get('isKids', False)
# fetch video lists
- video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids'})
+ if is_kids == True:
+ video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids_for_kids'})
+ else:
+ video_list_ids = self.call_netflix_service({'method': 'fetch_video_list_ids'})
+
# check for any errors
if self._is_dirty_response(response=video_list_ids):
return False
- # parse the video list ids
- self.kodi_helper.add_cached_item(cache_id=cache_id, contents=video_list_ids)
+ # cache the video list ids
+ #self.kodi_helper.add_cached_item(cache_id=cache_id, contents=video_list_ids)
# defines an order for the user list, as Netflix changes the order at every request
user_list_order = ['queue', 'continueWatching', 'topTen', 'netflixOriginals', 'trendingNow', 'newRelease', 'popularTitles']
# define where to route the user
self.call_netflix_service({'method': 'switch_profile', 'profile_id': params['profile_id']})
# check login, in case of main menu
if 'action' not in params:
- self.kodi_helper.log('ES Called - Zeile 428')
self.establish_session(account=credentials)
return options
if 'error' in response:
# check if we do not have a valid session, in case that happens: (re)login
if self._is_expired_session(response=response):
- self.kodi_helper.log('ES Called - Zeile 499')
if self.establish_session(account=self.kodi_helper.get_credentials()):
return True
message = response['message'] if 'message' in response else ''
data = urllib2.urlopen(full_url).read()
parsed_json = json.loads(data)
return parsed_json.get('result', None)
+
+ def open_settings(self, url):
+ """Opens a foreign settings dialog"""
+ is_addon = self.kodi_helper.get_inputstream_addon()
+ url = is_addon if url == 'is' else url
+ return Addon(url).openSettings()