def __init__(self, nfsession: 'NFSessionOperations'): self.nfsession = nfsession self.events_handler_thread = None self._init_msl_handler() common.register_slot(signal=common.Signals.SWITCH_EVENTS_HANDLER, callback=self.switch_events_handler, is_signal=True) # Slot allocation for IPC self.slots = [self.msl_requests.perform_key_handshake]
def __init__(self): xbmc.Monitor.__init__(self) self._init_data = None self.tracking = False self.events_workaround = False self.active_player_id = None self.action_managers = None self._last_player_state = {} common.register_slot(self.initialize_playback, common.Signals.PLAYBACK_INITIATED)
def __init__(self, cache_path, plugin_handle): self.plugin_handle = plugin_handle self.cache_path = cache_path self.buckets = {} self.window = xbmcgui.Window(10000) # Kodi home window # If you use multiple Kodi profiles you need to distinguish the cache of the current profile self.properties_prefix = common.get_current_kodi_profile_name() if g.IS_SERVICE: common.register_slot(self.invalidate_callback, signal=common.Signals.INVALIDATE_SERVICE_CACHE)
def __init__(self, chunked_request): super(EventsHandler, self).__init__() self.chunked_request = chunked_request # session_id, app_id are common to all events self.session_id = int(time.time()) * 10000 + random.randint(1, 10001) self.app_id = None self.queue_events = queue.Queue(maxsize=10) self.cache_data_events = {} self.banned_events_ids = [] common.register_slot(signal=common.Signals.QUEUE_VIDEO_EVENT, callback=self.callback_event_video_queue)
def __init__(self): xbmc.Monitor.__init__(self) self.tracking = False self.active_player_id = None self.action_managers = None common.register_slot(self.initialize_playback, common.Signals.PLAYBACK_INITIATED) # UpNext Add-on - play call back method common.register_slot(self._play_callback, signal=g.ADDON_ID + '_play_action', source_id='upnextprovider') # Safe measure for when Kodi interrupt the play action due to an error/problem or Kodi crash _reset_upnext_callback_state()
def __init__(self): xbmc.Monitor.__init__(self) self._init_data = None self.init_count = 0 self.tracking = False self.tracking_tick = False self.active_player_id = None self.action_managers = None self._last_player_state = {} self._is_pause_called = False common.register_slot(self.initialize_playback, common.Signals.PLAYBACK_INITIATED)
def __init__(self): NFSessionAccess.__init__(self) DirectoryBuilder.__init__(self, self) self.slots = [ self.login, self.logout, self.activate_profile, self.parental_control_data, self.path_request, self.perpetual_path_request, self.callpath_request, self.get, self.post, self.startup_requests_module ] for slot in self.slots: common.register_slot(slot) self.prefetch_login()
def __init__(self, netflix_session): super(DirectoryBuilder, self).__init__() self.netflix_session = netflix_session self.slots = [ self.get_mainmenu, self.get_profiles, self.get_seasons, self.get_episodes, self.get_video_list, self.get_video_list_sorted, self.get_video_list_supplemental, self.get_video_list_chunked, self.get_video_list_search, self.get_genres, self.get_subgenres, self.get_mylist_videoids_profile_switch, self.add_videoids_to_video_list_cache ] for slot in self.slots: common.register_slot(slot)
def __init__(self): NFSessionAccess.__init__(self) DirectoryBuilder.__init__(self, self) self.slots = [ self.fetch_initial_page, self.login, self.logout, self.activate_profile, self.parental_control_data, self.path_request, self.perpetual_path_request, self.callpath_request, self.get, self.post, self.update_lolomo_data ] for slot in self.slots: common.register_slot(slot) self.prefetch_login() self.is_profile_session_active = False
def __init__(self): super(MSLHandler, self).__init__() self._events_handler_thread = None self._init_msl_handler() common.register_slot(signal=common.Signals.ESN_CHANGED, callback=self.msl_requests.perform_key_handshake) common.register_slot(signal=common.Signals.RELEASE_LICENSE, callback=self.release_license) common.register_slot(signal=common.Signals.CLEAR_USER_ID_TOKENS, callback=self.clear_user_id_tokens) common.register_slot(signal=common.Signals.REINITIALIZE_MSL_HANDLER, callback=self.reinitialize_msl_handler) common.register_slot(signal=common.Signals.SWITCH_EVENTS_HANDLER, callback=self.switch_events_handler)
def __init__(self): NFSessionAccess.__init__(self) DirectoryBuilder.__init__(self, self) self.slots = [ self.login, self.logout, self.activate_profile, self.parental_control_data, self.path_request, self.perpetual_path_request, self.callpath_request, self.get, self.post, self.startup_requests_module ] for slot in self.slots: common.register_slot(slot) # UpNext Add-on - play call back method # common.register_slot(play_callback, signal=g.ADDON_ID + '_play_action', # source_id='upnextprovider') self.prefetch_login()
def __init__(self): # pylint: disable=broad-except try: msl_data = json.loads(common.load_file('msl_data.json')) self.request_builder = MSLRequestBuilder(msl_data) common.debug('Loaded MSL data from disk') except Exception: import traceback common.debug(traceback.format_exc()) common.debug('Stored MSL data expired or not available') self.request_builder = MSLRequestBuilder() self.perform_key_handshake() common.register_slot( signal=common.Signals.ESN_CHANGED, callback=self.perform_key_handshake)
def __init__(self): super(NetflixSession, self).__init__() self.slots = [ self.login, self.logout, self.activate_profile, self.parental_control_data, self.path_request, self.perpetual_path_request, self.perpetual_path_request_switch_profiles, self.get, self.post, self.startup_requests_module ] for slot in self.slots: common.register_slot(slot) common.register_slot(play_callback, signal=g.ADDON_ID + '_play_action', source_id='upnextprovider') self.prefetch_login()
def __init__(self, nfsession: 'NFSessionOperations', msl_handler: 'MSLHandler', directory_builder: 'DirectoryBuilder'): xbmc.Monitor.__init__(self) self.nfsession = nfsession self.msl_handler = msl_handler self.directory_builder = directory_builder self._playback_tick = None self._init_data = None self.init_count = 0 self.is_tracking_enabled = False self.active_player_id = None self.action_managers = None self._last_player_state = {} self._is_pause_called = False common.register_slot(self.initialize_playback, common.Signals.PLAYBACK_INITIATED)
def __init__(self): # Create and establish the Netflix session self.nfsession = NFSessionOperations() # Initialize correlated features self.directory_builder = DirectoryBuilder(self.nfsession) # Register the functions to IPC slots = self.nfsession.slots + self.directory_builder.slots + [ self.library_auto_update ] for slot in slots: func_name = slot.__name__ enveloped_func = common.EnvelopeIPCReturnCall(slot).call # For HTTP IPC (http_server.py) self.http_ipc_slots[func_name] = enveloped_func # For AddonSignals IPC common.register_slot(enveloped_func, func_name)
def __init__(self): super(MSLHandler, self).__init__() self.msl_requests = None try: msl_data = json.loads(common.load_file('msl_data.json')) common.info('Loaded MSL data from disk') except Exception: # pylint: disable=broad-except msl_data = None self.msl_requests = MSLRequests(msl_data) EventsHandler(self.msl_requests.chunked_request).start() common.register_slot(signal=common.Signals.ESN_CHANGED, callback=self.msl_requests.perform_key_handshake) common.register_slot(signal=common.Signals.RELEASE_LICENSE, callback=self.release_license)
def __init__(self): self.slots = [ self.login, self.logout, self.activate_profile, self.path_request, self.perpetual_path_request, self.get, self.post, ] for slot in self.slots: common.register_slot(slot) common.register_slot(play_callback, signal=g.ADDON_ID + '_play_action', source_id='upnextprovider') self._init_session() self._prefetch_login()
def __init__(self): self._identifier_prefix = None self.mutex = threading.Lock() self.local_storage = threading.local() self.conn = None self.db_file_path = None self.memory_cache = {} self._initialize() self.next_schedule = _compute_next_schedule() self.ttl_values = {} self.load_ttl_values() self.pending_db_ops_add = [] # Slot allocation for IPC slots = [self.get, self.add, self.delete, self.clear] for slot in slots: # For AddonSignals IPC common.register_slot(slot, slot.__name__)
def __init__(self): # pylint: disable=broad-except self.request_builder = None try: msl_data = json.loads(common.load_file('msl_data.json')) common.info('Loaded MSL data from disk') except Exception: msl_data = None try: self.request_builder = MSLRequestBuilder(msl_data) # Addon just installed, the service starts but there is no esn if g.get_esn(): self.check_mastertoken_validity() except Exception: import traceback common.error(traceback.format_exc()) common.register_slot(signal=common.Signals.ESN_CHANGED, callback=self.perform_key_handshake)
def __init__(self): self._events_handler_thread = None self._init_msl_handler() common.register_slot(signal=common.Signals.RELEASE_LICENSE, callback=self.release_license) common.register_slot(signal=common.Signals.CLEAR_USER_ID_TOKENS, callback=self.clear_user_id_tokens) common.register_slot(signal=common.Signals.REINITIALIZE_MSL_HANDLER, callback=self.reinitialize_msl_handler) common.register_slot(signal=common.Signals.SWITCH_EVENTS_HANDLER, callback=self.switch_events_handler) # Register slot perform_key_handshake to IPC func_name = self.msl_requests.perform_key_handshake.__name__ enveloped_func = common.EnvelopeIPCReturnCall( self.msl_requests.perform_key_handshake).call self.http_ipc_slots[ func_name] = enveloped_func # HTTP IPC (http_server.py) common.register_slot(enveloped_func, func_name) # AddonSignals IPC
def __init__(self): # Create and establish the Netflix session self.nfsession = NFSessionOperations() # Create MSL handler self.msl_handler = MSLHandler(self.nfsession) # Initialize correlated features self.directory_builder = DirectoryBuilder(self.nfsession) self.action_controller = ActionController(self.nfsession, self.msl_handler, self.directory_builder) # Register the functions to IPC slots = (self.nfsession.slots + self.msl_handler.slots + self.directory_builder.slots + [self.library_auto_update]) for slot in slots: func_name = slot.__name__ # For HTTP IPC (http_server.py) self.http_ipc_slots[func_name] = slot # For AddonSignals IPC common.register_slot(slot, func_name)
def __init__(self): self.slots = [ self.login, self.logout, self.update_profiles_data, self.activate_profile, self.parental_control_data, self.path_request, self.perpetual_path_request, self.perpetual_path_request_switch_profiles, self.get, self.post, ] for slot in self.slots: common.register_slot(slot) common.register_slot(play_callback, signal=g.ADDON_ID + '_play_action', source_id='upnextprovider') self.verify_ssl = bool(g.ADDON.getSettingBool('ssl_verification')) self._init_session() self.is_prefetch_login = False self._prefetch_login()
def __init__(self, nfsession: 'NFSessionOperations'): self.nfsession = nfsession self.events_handler_thread = None self._init_msl_handler() common.register_slot(signal=common.Signals.CLEAR_USER_ID_TOKENS, callback=self.clear_user_id_tokens, is_signal=True) common.register_slot(signal=common.Signals.REINITIALIZE_MSL_HANDLER, callback=self.reinitialize_msl_handler, is_signal=True) common.register_slot(signal=common.Signals.SWITCH_EVENTS_HANDLER, callback=self.switch_events_handler, is_signal=True) # Slot allocation for IPC self.slots = [self.msl_requests.perform_key_handshake]