add handleCommand to converter
[enigma2.git] / lib / python / Components / PluginComponent.py
index e5ceb90d5b5a37ca272b959a417d59177d970d24..dd29628b80c96b3a10c68324f3e02be72528a46d 100644 (file)
@@ -1,16 +1,9 @@
 import os
 
 from Tools.Directories import *
+from Tools.Import import my_import
 from Plugins.Plugin import PluginDescriptor
 
-def my_import(name):
-       print name
-       mod = __import__(name)
-       components = name.split('.')
-       for comp in components[1:]:
-               mod = getattr(mod, comp)
-       return mod
-
 class PluginComponent:
        def __init__(self):
                self.plugins = {}
@@ -47,16 +40,16 @@ class PluginComponent:
                                continue
                        open(directory_category + "/__init__.py", "a").close()
                        for x in os.listdir(directory_category):
-                               path = directory_category + "/" + x + "/"
+                               path = directory_category + "/" + x
                                if os.path.isdir(path):
-                                       if fileExists(path + "plugin.py"):
+                                       if fileExists(path + "/plugin.pyc") or fileExists(path + "/plugin.py"):
                                                plugin = my_import('.'.join(["Plugins", c, x, "plugin"]))
 
                                                if not plugin.__dict__.has_key("Plugins"):
                                                        print "Plugin %s doesn't have 'Plugin'-call." % (x)
                                                        continue
 
-                                               plugins = plugin.Plugins()
+                                               plugins = plugin.Plugins(path=path)
 
                                                # allow single entry not to be a list
                                                if type(plugins) is not list: