fix(kids-profiles): Reenables Kids profiles after NEtflix API changes
[plugin.video.netflix.git] / resources / lib / NetflixHttpSubRessourceHandler.py
index 1c6d29e3529082f7954d6145f91c3e4190f07807..4e7e1dd0b2659b399edb319b3fac80009d546335 100644 (file)
@@ -23,6 +23,7 @@ class NetflixHttpSubRessourceHandler:
         self.netflix_session = netflix_session
         self.credentials = self.kodi_helper.get_credentials()
         self.video_list_cache = {}
+        self.lolomo = None
 
         # check if we have stored credentials, if so, do the login before the user requests it
         # if that is done, we cache the profiles
@@ -67,6 +68,7 @@ class NetflixHttpSubRessourceHandler:
         """
         self.profiles = []
         self.credentials = {'email': '', 'password': ''}
+        self.lolomo = None
         return self.netflix_session.logout()
 
     def login (self, params):
@@ -143,6 +145,24 @@ class NetflixHttpSubRessourceHandler:
             return video_list_ids_raw
         return self.netflix_session.parse_video_list_ids(response_data=video_list_ids_raw)
 
+    def fetch_video_list_ids_for_kids (self, params):
+        """Video list ids proxy function (thanks to Netflix that we need to use a different API for Kids profiles)
+
+        Parameters
+        ----------
+        params : :obj:`dict` of :obj:`str`
+            Request params
+
+        Returns
+        -------
+        :obj:`list`
+            Transformed response of the remote call
+        """
+        if self.lolomo == None:
+            self.lolomo = self.netflix_session.get_lolomo_for_kids()
+        response = self.netflix_session.fetch_lists_for_kids(lolomo=self.lolomo)
+        return response
+
     def fetch_video_list (self, params):
         """Video list proxy function
 
@@ -284,6 +304,7 @@ class NetflixHttpSubRessourceHandler:
             Response of the remote call
         """
         profile_id = params.get('profile_id', [''])[0]
+        self.lolomo = None
         return self.netflix_session.switch_profile(profile_id=profile_id, account=self.credentials)
 
     def get_user_data (self, params):