X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2d470a436a60b917a27c2055952a0a24374b994c..05626c8692bb0775f993ee23494926b21c266eac:/lib/python/Components/PluginComponent.py diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py index 67373ea7..adfc98a0 100644 --- a/lib/python/Components/PluginComponent.py +++ b/lib/python/Components/PluginComponent.py @@ -12,7 +12,7 @@ class PluginComponent: def setPluginPrefix(self, prefix): self.prefix = prefix - def getPluginList(self): + def getPluginList(self, runAutostartPlugins=False, runAutoendPlugins=False): list = [] dir = os.listdir(resolveFilename(SCOPE_PLUGINS)) self.menuDelete() @@ -27,15 +27,29 @@ class PluginComponent: print "trying to import " + pluginmodule exec "import " + pluginmodule plugin = eval(pluginmodule) - picturepath = plugin.getPicturePath() - pluginname = plugin.getPluginName() + plugins = plugin.getPlugins() + try: picturepaths = plugin.getPicturePaths() + except: + picturepaths = [] + for p in plugins: + picturepaths.append("") try: for menuEntry in plugin.getMenuRegistrationList(): self.menuEntries.append([menuEntry, pluginmodule]) except: pass - - list.append((picturepath, pluginname , x)) + + for y in range(len(plugins)): + if len(plugins[y]) < 5: + list.append((path + picturepaths[y], plugins[y][0] , x, plugins[y][2], plugins[y][3], None, plugins[y][1])) + else: + list.append((path + picturepaths[y], plugins[y][0] , x, plugins[y][2], plugins[y][3], plugins[y][4], plugins[y][1])) + if runAutostartPlugins: + try: plugin.autostart() + except: pass + if runAutoendPlugins: + try: plugin.autoend() + except: pass except: print "Directory", path, "contains a faulty plugin" self.menuUpdate() @@ -43,16 +57,19 @@ class PluginComponent: def menuDelete(self): for menuEntry in self.menuEntries: - menuupdater.delMenuItem(menuEntry[0][0], menuEntry[0][2], menuEntry[1], menuEntry[0][3]) + menuupdater.delMenuItem(menuEntry[0][0], menuEntry[0][1], menuEntry[0][2], menuEntry[1], menuEntry[0][3]) def menuUpdate(self): for menuEntry in self.menuEntries: - menuupdater.addMenuItem(menuEntry[0][0], menuEntry[0][2], menuEntry[1], menuEntry[0][3]) + menuupdater.addMenuItem(menuEntry[0][0], menuEntry[0][1], menuEntry[0][2], menuEntry[1], menuEntry[0][3]) def runPlugin(self, plugin, session): try: - exec "import " + self.prefix + plugin[2] + ".plugin" - eval(self.prefix + plugin[2] + ".plugin").main(session) + exec("import " + self.prefix + plugin[2] + ".plugin") + if plugin[3] == "screen": + session.open(eval(self.prefix + plugin[2] + ".plugin." + plugin[4]), plugin[5]) + elif plugin[3] == "function": + eval(self.prefix + plugin[2] + ".plugin." + plugin[4])(session, plugin[5]) except: print "exec of plugin failed!"