import pluginInterfaces as pi from yapsy.PluginManager import PluginManagerSingleton class Help(pi.IInterfacePlugin): """ The help plugin print the usage information of prismedia’s plugins. Use it by simply calling `prismedia help ...`. For example `prismedia help help` bring this help. """ def prepare_options(self, video, options): print(__name__) pluginManager = PluginManagerSingleton.get() if options[""]: parameters = options[""] else: parameters = ["help"] for p in parameters: plugin = pluginManager.getPluginByName(p, pi.PluginTypes.ALL) if plugin is None: # TODO: log instead to warning? error? print("No plugin was found with name:", p) continue print(plugin.name + "\t" + plugin.description) print("Usage:", plugin.plugin_object.__doc__) # Generic help this plugin is able to give for the if p == "help": print("The plugins are stored in the following folders:", pluginManager.getPluginLocator().plugins_places) print("Category:", pi.PluginTypes.INTERFACE.value) for plugin in pluginManager.getPluginsOfCategory(pi.PluginTypes.INTERFACE): print("\t" + plugin.name) print("Category:", pi.PluginTypes.PLATFORM.value) for plugin in pluginManager.getPluginsOfCategory(pi.PluginTypes.PLATFORM): print("\t" + plugin.name) print("Category:", pi.PluginTypes.CONSUMER.value) for plugin in pluginManager.getPluginsOfCategory(pi.PluginTypes.CONSUMER): print("\t" + plugin.name) # Print a line break between each plugin help. print() return False