def validator(self): from flexget import validator root = validator.factory('list') key_validator = validator.factory('regexp_match', message='If statements cannot contain \'__\' or \'try\' statements') key_validator.reject(r'.*?(__|try\s*:)') key_validator.accept('.') action = root.accept('dict').accept_valid_keys('root', key_validator=key_validator) action.accept('choice').accept_choices(['accept', 'reject', 'fail']) filter_action = action.accept('dict') # Get a list of apiv2 input plugins, make sure to exclude self valid_filters = [plugin for plugin in get_plugins_by_phase('filter') if plugin.api_ver > 1 and plugin.name != 'if'] # Build a dict validator that accepts the available filter plugins and their settings for plugin in valid_filters: if hasattr(plugin.instance, 'validator'): validator = plugin.instance.validator() if validator.name == 'root': # If a root validator is returned, grab the list of child validators filter_action.valid[plugin.name] = validator.valid else: filter_action.valid[plugin.name] = [plugin.instance.validator()] else: filter_action.valid[plugin.name] = [validator.factory('any')] return root
def validator(self): from flexget import validator root = validator.factory('dict') self.build_options_validator(root.accept('dict', key='settings')) from_section = root.accept('dict', key='from', required=True) # Build a dict validator that accepts the available input plugins and their settings for plugin in get_plugins_by_phase('input'): if plugin.api_ver > 1 and hasattr(plugin.instance, 'validator'): from_section.accept(plugin.instance.validator, key=plugin.name) return root
def plugins(self, phase=None): """Get currently enabled plugins. :param string phase: Optional, limits to plugins currently configured on given phase, sorted in phase order. :return: An iterator over configured :class:`flexget.plugin.PluginInfo` instances enabled on this task. """ if phase: plugins = sorted(get_plugins_by_phase(phase), key=lambda p: p.phase_handlers[phase], reverse=True) else: plugins = all_plugins.itervalues() return (p for p in plugins if p.name in self.config or p.builtin)
def validator(self): from flexget import validator root = validator.factory('list') key_validator = validator.factory('regexp_match', message='If statements cannot contain \'__\' or \'try\' statements') key_validator.reject(r'.*?(__|try\s*:)') key_validator.accept('.') action = root.accept('dict').accept_valid_keys('root', key_validator=key_validator) action.accept('choice').accept_choices(['accept', 'reject', 'fail']) filter_action = action.accept('dict') # Build a dict validator that accepts the available filter plugins and their settings for plugin in get_plugins_by_phase('filter'): if plugin.api_ver > 1 and hasattr(plugin.instance, 'validator'): filter_action.accept(plugin.instance.validator, key=plugin.name) return root
def validator(self): from flexget import validator discover = validator.factory('dict') inputs = discover.accept('list', key='what', required=True).accept('dict') for plugin in get_plugins_by_phase('input'): if hasattr(plugin.instance, 'validator'): inputs.accept(plugin.instance.validator, key=plugin.name) searches = discover.accept('list', key='from', required=True) no_config = searches.accept('choice') for plugin in get_plugins_by_group('search'): if hasattr(plugin.instance, 'validator'): searches.accept('dict').accept(plugin.instance.validator, key=plugin.name) else: no_config.accept(plugin.name) discover.accept('integer', key='limit') discover.accept('choice', key='type').accept_choices(['any', 'normal', 'exact', 'movies']) return discover
def validator(self): from flexget import validator discover = validator.factory('dict') inputs = discover.accept('list', key='what', required=True).accept('dict') for plugin in get_plugins_by_phase('input'): if hasattr(plugin.instance, 'validator'): inputs.accept(plugin.instance.validator, key=plugin.name) searches = discover.accept('list', key='from', required=True) no_config = searches.accept('choice') for plugin in get_plugins_by_group('search'): if hasattr(plugin.instance, 'validator'): searches.accept('dict').accept(plugin.instance.validator, key=plugin.name) else: no_config.accept(plugin.name) discover.accept('integer', key='limit') discover.accept('choice', key='type').accept_choices( ['any', 'normal', 'exact', 'movies']) return discover