def login(ask=1, **kwargs): ask = int(ask) profile_settings = load_profile(profile_id=1) if len(profile_settings['devicekey']) == 0: _devicekey = 'w{uuid}'.format(uuid=uuid.uuid4()) query = "UPDATE `vars` SET `devicekey`='{devicekey}' WHERE profile_id={profile_id}".format( devicekey=_devicekey, profile_id=1) query_settings(query=query, return_result=False, return_insert=False, commit=True) creds = get_credentials() if len(creds['username']) < 1 or len(creds['password']) < 1 or ask == 1: username = gui.input(message=_.ASK_USERNAME, default=creds['username']).strip() if not len(username) > 0: gui.ok(message=_.EMPTY_USER, heading=_.LOGIN_ERROR_TITLE) return password = gui.input(message=_.ASK_PASSWORD, hide_input=True).strip() if not len(password) > 0: gui.ok(message=_.EMPTY_PASS, heading=_.LOGIN_ERROR_TITLE) return set_credentials(username=username, password=password) login_result = api.login() if login_result['result'] == False: query = "UPDATE `vars` SET `pswd`='', `last_login_success`='{last_login_success}' WHERE profile_id={profile_id}".format( last_login_success=0, profile_id=1) query_settings(query=query, return_result=False, return_insert=False, commit=True) if check_key(login_result['data'], 'error') and login_result['data']['error'] == 'toomany': gui.ok(message=_.TOO_MANY_DEVICES, heading=_.LOGIN_ERROR_TITLE) else: gui.ok(message=_.LOGIN_ERROR, heading=_.LOGIN_ERROR_TITLE) else: gui.ok(message=_.LOGIN_SUCCESS) query = "UPDATE `vars` SET `last_login_success`='{last_login_success}' WHERE profile_id={profile_id}".format( last_login_success=1, profile_id=1) query_settings(query=query, return_result=False, return_insert=False, commit=True) gui.refresh()
def search(query=None, **kwargs): items = [] if not query: query = gui.input(message=_.SEARCH, default='').strip() if not query: return db_query = "UPDATE `vars` SET `search10`=`search9`, `search9`=`search8`, `search8`=`search7`, `search7`=`search6`, `search6`=`search5`, `search5`=`search4`, `search4`=`search3`, `search3`=`search2`, `search2`=`search1`, `search1`='{search1}' WHERE profile_id={profile_id}".format(search1=query, profile_id=1) query_settings(query=db_query, return_result=False, return_insert=False, commit=False) folder = plugin.Folder(title=_(_.SEARCH_FOR, query=query)) processed = process_replaytv_search(search=query) items += processed['items'] if settings.getBool('showMoviesSeries'): processed = process_vod_content(data='series', start=0, search=query, type=_.SERIES) items += processed['items'] processed = process_vod_content(data='film1', start=0, search=query, type=_.MOVIES) items += processed['items'] processed = process_vod_content(data='videoshop', start=0, search=query, type=_.VIDEOSHOP) items += processed['items'] items[:] = sorted(items, key=_sort_replay_items, reverse=True) items = items[:25] folder.add_items(items) return folder
def search(query=None, **kwargs): items = [] if not query: query = gui.input(message=_.SEARCH, default='').strip() if not query: return for x in reversed(list(range(2, 10))): settings.set(key='_search' + unicode(x), value=settings.get(key='_search' + unicode(x - 1))) settings.set(key='_search1', value=query) folder = plugin.Folder(title=_(_.SEARCH_FOR, query=query)) data = load_file(file='list_replay.json', isJSON=True) processed = process_replaytv_search(data=data, start=0, search=query) items += processed['items'] items[:] = sorted(items, key=_sort_replay_items, reverse=True) items = items[:25] folder.add_items(items) return folder
def online_search(query=None, **kwargs): if not query: query = gui.input(message=_.SEARCH, default='').strip() if not query: return for x in reversed(list(range(2, 10))): settings.set(key='_search' + unicode(x), value=settings.get(key='_search' + unicode(x - 1))) settings.set(key='_search_type' + unicode(x), value=settings.get(key='_search_type' + unicode(x - 1))) settings.set(key='_search1', value=query) settings.set(key='_search_type1', value=' (Online)') folder = plugin.Folder(title=_(_.SEARCH_FOR, query=query)) data = api.online_search(search=query, vod=settings.getBool('showMoviesSeries')) if data: processed = process_online_search(data=data) if processed: folder.add_items(processed) return folder
def login(**kwargs): creds = get_credentials() username = gui.input(message=_.ASK_USERNAME, default=creds['username']).strip() if not len(username) > 0: gui.ok(message=_.EMPTY_USER, heading=_.LOGIN_ERROR_TITLE) return password = gui.input(message=_.ASK_PASSWORD, hide_input=True).strip() if not len(password) > 0: gui.ok(message=_.EMPTY_PASS, heading=_.LOGIN_ERROR_TITLE) return api.login(username=username, password=password, channels=True) plugin.logged_in = api.logged_in check_entitlements() gui.refresh()
def search(query=None, **kwargs): items = [] if not query: query = gui.input(message=_.SEARCH, default='').strip() if not query: return for x in reversed(list(range(2, 10))): settings.set(key='_search' + unicode(x), value=settings.get(key='_search' + unicode(x - 1))) settings.set(key='_search1', value=query) folder = plugin.Folder(title=_(_.SEARCH_FOR, query=query)) data = load_file(file='list_replay.json', isJSON=True) processed = process_replaytv_search(data=data, start=0, search=query) items += processed['items'] if settings.getBool('showMoviesSeries') == True: processed = process_vod_content(data=load_file(file='vod.json', isJSON=True)['series'], start=0, search=query, type=_.SERIES) items += processed['items'] processed = process_vod_content(data=load_file(file='vod.json', isJSON=True)['movies'], start=0, search=query, type=_.MOVIES) items += processed['items'] processed = process_vod_content(data=load_file( file='vod.json', isJSON=True)['kidsseries'], start=0, search=query, type=_.KIDS_SERIES) items += processed['items'] processed = process_vod_content(data=load_file( file='vod.json', isJSON=True)['kidsmovies'], start=0, search=query, type=_.KIDS_MOVIES) items += processed['items'] items[:] = sorted(items, key=_sort_replay_items, reverse=True) items = items[:25] folder.add_items(items) return folder
def new_session(self, force=False, retry=True, channels=False): self.check_vars() if self._debug_mode: log.debug('Executing: api.new_session') log.debug( 'Vars: force={force}, retry={retry}, channels={channels}'. format(force=force, retry=retry, channels=channels)) log.debug('Cookies: {cookies}'.format(cookies=self._cookies)) username = self._username password = self._password if len(self._cookies) > 0 and len( username ) > 0 and not force and not channels and self._session_age > int( time.time() - 7200) and self._last_login_success: self.logged_in = True try: self._session except: self._session = Session(cookies_key='_cookies') if self._debug_mode: log.debug('Creating new Requests Session') log.debug('Request Session Headers') log.debug(self._session.headers) log.debug('api.logged_in: {logged_in}'.format( logged_in=self.logged_in)) return True self.logged_in = False if self._debug_mode: log.debug( 'api.logged_in: {logged_in}'.format(logged_in=self.logged_in)) if not len(username) > 0: if self._debug_mode: log.debug('Username length = 0') log.debug('Execution Done: api.new_session') settings.setBool(key="_last_login_success", value=self.logged_in) self._last_login_success = self.logged_in return False if not len(password) > 0: email_or_pin = settings.getBool(key='email_instead_of_customer') if not force: if self._debug_mode: log.debug('Password length = 0 and force is false') log.debug('Execution Done: api.new_session') settings.setBool(key="_last_login_success", value=self.logged_in) self._last_login_success = self.logged_in return False if email_or_pin: password = gui.input(message=_.ASK_PASSWORD2, hide_input=True).strip() else: password = gui.numeric(message=_.ASK_PASSWORD).strip() if not len(password) > 0: if self._debug_mode: log.debug('Password length = 0') log.debug('Execution Done: api.new_session') if email_or_pin: gui.ok(message=_.EMPTY_PASS2, heading=_.LOGIN_ERROR_TITLE) else: gui.ok(message=_.EMPTY_PASS, heading=_.LOGIN_ERROR_TITLE) settings.setBool(key="_last_login_success", value=self.logged_in) self._last_login_success = self.logged_in return False self.login(username=username, password=password, channels=channels, retry=retry) if self._debug_mode: log.debug('Execution Done: api.new_session') log.debug( 'api.logged_in: {logged_in}'.format(logged_in=self.logged_in)) settings.setBool(key="_last_login_success", value=self.logged_in) self._last_login_success = self.logged_in if self.logged_in: return True return False