Example #1
0
	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')
Example #2
0
 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
Example #3
0
	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))
Example #4
0
 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, ))
Example #5
0
 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