Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
    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