X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FPluginComponent.py;h=0b4070218b5462a65a3fb06e633c04d1f81f4aea;hp=26382063035d2d7d63b44afcfae402016b77cfeb;hb=91890bc31f2752aa8ff55372aa69a6723a0c09b5;hpb=ccb8d260ed5e51f6f65205be04744a9e8322aa6f diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py index 2638206..0b40702 100644 --- a/lib/python/Components/PluginComponent.py +++ b/lib/python/Components/PluginComponent.py @@ -1,33 +1,56 @@ import os from Tools.Directories import * -#import Plugins +from Screens.Menu import menuupdater class PluginComponent: def __init__(self): self.plugins = [] self.setPluginPrefix("Plugins.") + self.menuEntries = [] def setPluginPrefix(self, prefix): self.prefix = prefix def getPluginList(self): list = [] - dir = os.listdir("/usr/lib/enigma2/python/Plugins/") + dir = os.listdir(resolveFilename(SCOPE_PLUGINS)) + self.menuDelete() + self.menuEntries = [] + for x in dir: - if x[-3:] == ".py" and x[:-3] != "__init__": - #try: - print "trying to import " + self.prefix + x[:-3] - exec "import " + self.prefix + x[:-3] - picturepath = eval(self.prefix + x[:-3]).getPicturePath() - pluginname = eval(self.prefix + x[:-3]).getPluginName() - list.append((picturepath, pluginname , x[:-3])) - #except: - #print "Failed to open module - wrong plugin!" + path = resolveFilename(SCOPE_PLUGINS, x) + "/" + if os.path.exists(path): + if fileExists(path + "plugin.py"): + pluginmodule = self.prefix + x + ".plugin" + print "trying to import " + pluginmodule + exec "import " + pluginmodule + plugin = eval(pluginmodule) + picturepath = plugin.getPicturePath() + pluginname = plugin.getPluginName() + try: + for menuEntry in plugin.getMenuRegistrationList(): + self.menuEntries.append([menuEntry, pluginmodule]) + except: + pass + + list.append((picturepath, pluginname , x)) + self.menuUpdate() return list + def menuDelete(self): + for menuEntry in self.menuEntries: + menuupdater.delMenuItem(menuEntry[0][0], 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]) + def runPlugin(self, plugin, session): - exec "import " + self.prefix + plugin[2] - eval(self.prefix + plugin[2]).main(session) + try: + exec "import " + self.prefix + plugin[2] + ".plugin" + eval(self.prefix + plugin[2] + ".plugin").main(session) + except: + print "exec of plugin failed!" plugins = PluginComponent()