Exemple #1
0
 def load_plugins(self):
     with indent(4):
         logger.debug("PLUGINS: %s", self._settings['PLUGINS'])
         for plugin in self._settings['PLUGINS']:
             for class_name, cls in import_string(plugin):
                 if issubclass(cls, MachineBasePlugin
                               ) and cls is not MachineBasePlugin:
                     logger.debug(
                         "Found a Machine plugin: {}".format(plugin))
                     storage = PluginStorage(class_name)
                     instance = cls(SlackClient(), self._settings, storage)
                     missing_settings = self._register_plugin(
                         class_name, instance)
                     if missing_settings:
                         show_invalid(class_name)
                         with indent(4):
                             error_msg = "The following settings are missing: {}".format(
                                 ", ".join(missing_settings))
                             puts(colored.red(error_msg))
                             puts(
                                 colored.red(
                                     "This plugin will not be loaded!"))
                         del instance
                     else:
                         instance.init()
                         show_valid(class_name)
     self._storage.set('manual', dill.dumps(self._help))
 def _gen_message(event, plugin_class_name):
     return Message(SlackClient(), event, plugin_class_name)