updates fetched from Aciidisco
[plugin.video.netflix.git] / resources / lib / NetflixHttpSubRessourceHandler.py
index 5123ceb5d1f7b184a2c3e9d35aefd78656602249..43eb5370e799f2f64d9b6d027df04c21affe30ca 100644 (file)
@@ -3,9 +3,6 @@
 # Module: NetflixHttpSubRessourceHandler
 # Created on: 07.03.2017
 
-from urllib2 import urlopen, URLError
-from time import sleep
-
 class NetflixHttpSubRessourceHandler:
     """ Represents the callable internal server routes & translates/executes them to requests for Netflix"""
 
@@ -26,28 +23,24 @@ class NetflixHttpSubRessourceHandler:
         self.netflix_session = netflix_session
         self.credentials = self.kodi_helper.get_credentials()
         self.profiles = []
-        self.prefetch_login()
         self.video_list_cache = {}
-        self.lolomo = None
+        self.prefetch_login()
 
     def prefetch_login (self):
         """Check if we have stored credentials.
         If so, do the login before the user requests it
         If that is done, we cache the profiles
         """
-        if self._network_availble():
-            if self.credentials['email'] != '' and self.credentials['password'] != '':
-                if self.netflix_session.is_logged_in(account=self.credentials):
-                    self.netflix_session.refresh_session_data(account=self.credentials)
-                    self.profiles = self.netflix_session.profiles
-                else:
-                    self.netflix_session.login(account=self.credentials)
-                    self.profiles = self.netflix_session.profiles
+        if self.credentials['email'] != '' and self.credentials['password'] != '':
+            if self.netflix_session.is_logged_in(account=self.credentials):
+                self.netflix_session.refresh_session_data(account=self.credentials)
+                self.profiles = self.netflix_session.profiles
             else:
-                self.profiles = []
+                self.netflix_session.login(account=self.credentials)
+                self.profiles = self.netflix_session.profiles
         else:
-            sleep(1)
-            self.prefetch_login()
+            self.profiles = []
+        self.kodi_helper.set_esn(self.netflix_session.esn)
 
     def is_logged_in (self, params):
         """Existing login proxy function
@@ -81,7 +74,8 @@ class NetflixHttpSubRessourceHandler:
         """
         self.profiles = []
         self.credentials = {'email': '', 'password': ''}
-        self.lolomo = None
+        # delete esn data
+        self.kodi_helper.delete_manifest_data()
         return self.netflix_session.logout()
 
     def login (self, params):
@@ -154,28 +148,11 @@ class NetflixHttpSubRessourceHandler:
             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
         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
 
@@ -317,7 +294,6 @@ 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):
@@ -379,16 +355,3 @@ class NetflixHttpSubRessourceHandler:
         if 'error' in raw_search_contents:
             return raw_search_contents
         return self.netflix_session.parse_video_list(response_data=raw_search_contents)
-
-    def _network_availble(self):
-        """Check if the network is available
-        Returns
-        -------
-        bool
-            Network can be accessed
-        """
-        try:
-            urlopen('http://216.58.192.142', timeout=1)
-            return True
-        except URLError as err:
-            return False