def use_inputstream_adaptive(): if kodi.get_setting('video_quality_ia') == 'true' or kodi.get_setting('video_quality') == '3': if kodi.get_setting('video_support_ia_builtin') == 'true': return True elif kodi.get_setting('video_support_ia_addon') == 'true': use_ia = kodi.get_setting('video_quality_ia') == 'true' or kodi.get_setting('video_quality') == '3' if not use_ia: return False ia_enabled = kodi.addon_enabled('inputstream.adaptive') if ia_enabled is False: if kodi.Dialog().yesno(kodi.get_name(), i18n('adaptive_is_disabled')): ia_enabled = kodi.set_addon_enabled('inputstream.adaptive') if ia_enabled: ia_min_version = '2.0.10' ia_version = kodi.Addon('inputstream.adaptive').getAddonInfo('version') ia_enabled = loose_version(ia_version) >= loose_version(ia_min_version) if not ia_enabled: result = kodi.Dialog().ok(kodi.get_name(), i18n('adaptive_version_check') % ia_min_version) if not ia_enabled: kodi.set_setting('video_quality_ia', 'false') kodi.set_setting('video_quality', '0') return False else: return True else: kodi.set_setting('video_quality_ia', 'false') kodi.set_setting('video_quality', '0') return False else: return False
def select_video_for_quality(videos): result = kodi.Dialog().select(i18n('choose_quality'), [video['name'] for video in videos]) if result == -1: return None else: return videos[result]
def remove_default_quality(content_type): json_data = get_stored_json() result = kodi.Dialog().select(i18n('remove_default_quality') % content_type, ['%s [%s]' % (user[user.keys()[0]]['name'], user[user.keys()[0]]['quality']) for user in json_data['qualities'][content_type]]) if result == -1: return None else: result = json_data['qualities'][content_type].pop(result) storage.save(json_data) return result
def remove_blacklist(list_type='user'): json_data = get_stored_json() result = kodi.Dialog().select(i18n('remove_from_blacklist') % list_type, [blacklist_name for blacklist_id, blacklist_name in json_data['blacklist'][list_type]]) if result == -1: return None else: result = json_data['blacklist'][list_type].pop(result) storage.save(json_data) return result
def valid_token(self, client_id, token, scopes): # client_id, token used for unique caching only token_check = self.root() while True: if not token_check['token']['valid']: result = kodi.Dialog().ok( heading=i18n('oauth_token'), line1=i18n('invalid_token'), line2=i18n('get_new_oauth_token') % (i18n('settings'), i18n('login'), i18n('get_oauth_token'))) log_utils.log('Error: Current OAuth token is invalid.', log_utils.LOGERROR) return False else: if token_check['token']['client_id'] == self.client_id: if token_check['token']['authorization']: token_scopes = token_check['token']['authorization'][ 'scopes'] missing_scopes = [ value for value in scopes if value not in token_scopes ] if len(missing_scopes) > 0: result = kodi.Dialog().ok( heading=i18n('oauth_token'), line1=i18n('missing_scopes') % missing_scopes, line2=i18n('get_new_oauth_token') % (i18n('settings'), i18n('login'), i18n('get_oauth_token'))) log_utils.log( 'Error: Current OAuth token is missing required scopes |%s|' % missing_scopes, log_utils.LOGERROR) return False else: return True else: return False else: matches_default = token_check['token'][ 'client_id'] == utils.get_client_id(default=True) message = 'Token created using default Client-ID |%s|' % str( matches_default) log_utils.log( 'Error: OAuth Client-ID mismatch: %s' % message, log_utils.LOGERROR) if matches_default: result = kodi.Dialog().ok( heading=i18n('oauth_token'), line1=i18n('client_id_mismatch'), line2=i18n('ok_to_resolve')) utils.clear_client_id() self.client_id = utils.get_client_id(default=True) self.queries.CLIENT_ID = self.client_id self.client = oauth.MobileClient(self.client_id) else: result = kodi.Dialog().ok( heading=i18n('oauth_token'), line1=i18n('client_id_mismatch'), line2=i18n('get_new_oauth_token') % (i18n('settings'), i18n('login'), i18n('get_oauth_token'))) return False