projects
/
plugin.video.netflix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
chore(performace): Prefetching of user video lists
[plugin.video.netflix.git]
/
resources
/
lib
/
NetflixHttpSubRessourceHandler.py
diff --git
a/resources/lib/NetflixHttpSubRessourceHandler.py
b/resources/lib/NetflixHttpSubRessourceHandler.py
index dd0fa08a608e56e1870327c8ea4fcf137c9d7a57..47230f459d0aea8405ea47c106bc656f6e9670e9 100644
(file)
--- a/
resources/lib/NetflixHttpSubRessourceHandler.py
+++ b/
resources/lib/NetflixHttpSubRessourceHandler.py
@@
-9,6
+9,7
@@
class NetflixHttpSubRessourceHandler:
self.kodi_helper = kodi_helper
self.netflix_session = netflix_session
self.credentials = self.kodi_helper.get_credentials()
self.kodi_helper = kodi_helper
self.netflix_session = netflix_session
self.credentials = self.kodi_helper.get_credentials()
+ self.video_list_cache = {}
if self.credentials['email'] != '' and self.credentials['password'] != '':
if self.netflix_session.is_logged_in(account=self.credentials):
if self.credentials['email'] != '' and self.credentials['password'] != '':
if self.netflix_session.is_logged_in(account=self.credentials):
@@
-16,9
+17,16
@@
class NetflixHttpSubRessourceHandler:
else:
self.netflix_session.login(account=self.credentials)
self.profiles = self.netflix_session.profiles
else:
self.netflix_session.login(account=self.credentials)
self.profiles = self.netflix_session.profiles
+ self._prefetch_user_video_lists()
else:
self.profiles = []
else:
self.profiles = []
+ def _prefetch_user_video_lists (self):
+ for profile_id in self.profiles:
+ self.switch_profile({'profile_id': [profile_id]})
+ self.video_list_cache[profile_id] = self.fetch_video_list_ids({})
+ print self.video_list_cache
+
def is_logged_in (self, params):
if self.credentials['email'] == '' or self.credentials['password'] == '':
return False
def is_logged_in (self, params):
if self.credentials['email'] == '' or self.credentials['password'] == '':
return False
@@
-46,6
+54,10
@@
class NetflixHttpSubRessourceHandler:
return self.netflix_session.esn
def fetch_video_list_ids (self, params):
return self.netflix_session.esn
def fetch_video_list_ids (self, params):
+ cached_list = self.video_list_cache.get(self.netflix_session.user_data['guid'], None)
+ if cached_list != None:
+ self.kodi_helper.log('Serving cached list for user: ' + self.netflix_session.user_data['guid'])
+ return cached_list
video_list_ids_raw = self.netflix_session.fetch_video_list_ids()
if 'error' in video_list_ids_raw:
return video_list_ids_raw
video_list_ids_raw = self.netflix_session.fetch_video_list_ids()
if 'error' in video_list_ids_raw:
return video_list_ids_raw