def get_plugin(self, obj): if type(obj) is Plugin: return obj elif type(obj) is str: file_name = tool.format_plugin_file_name(obj) return self.get_loaded_plugin_file_name_dict().get(file_name) else: raise TypeError('The object to load needs to be a Plugin or a str')
def get_plugin(self, obj): if type(obj) is Plugin: return obj else: file_name = tool.format_plugin_file_name(obj) for plugin in self.plugins: if plugin.file_name == file_name: return plugin return None
def load_plugin(self, info, file_name): file_name = tool.format_plugin_file_name(file_name) if not os.path.isfile(os.path.join(self.server.plugin_manager.plugin_folder, file_name)): self.send_message(info, self.t('command_manager.invalid_plugin_name', file_name)) else: ret = self.function_call(info, self.server.plugin_manager.load_plugin, 'load_plugin', func_args=(file_name, ), message_args=(file_name, ), success_message=False ) if ret is not None: # no outside exception self.send_message(info, self.t('command_manager.load_plugin.{}'.format('success' if ret.return_value else 'fail'), file_name))
def disable_plugin(self, info, file_name): file_name = tool.format_plugin_file_name(file_name) if not os.path.isfile( os.path.join(self.server.plugin_manager.plugin_folder, file_name)): self.send_message( info, self.t('command_manager.invalid_plugin_name', file_name)) else: self.function_call(info, self.server.plugin_manager.disable_plugin, 'disable_plugin', func_args=(file_name, ), message_args=(file_name, ))
def load_plugin(self, file_name, call_event=True): file_name = tool.format_plugin_file_name(file_name) try: # get the existed one or create a new one plugin = self.get_loaded_plugin_file_name_dict().get( file_name, Plugin(self.server, os.path.join(self.plugin_folder, file_name))) plugin.load() if plugin not in self.plugins: self.plugins.append(plugin) if call_event: plugin.call_on_load() self.logger.info( self.server.t('plugin_manager.load_plugin.success', file_name)) return plugin except: self.logger.exception( self.server.t('plugin_manager.load_plugin.fail', file_name)) return None