def loadPlugins(self):
   settingsReader = ConfigReader(conf.getPluginsettings())
   if not os.path.exists(conf.getPluginLoadSettings()):
       print("[!] Could not find plugin loader file!")
       return
   # Read and parse plugin file
   data = open(conf.getPluginLoadSettings(), "r").read()
   data = [x.split("\t") for x in data.split("\n") if not x.startswith("#") and x]
   data = [[x.strip() for x in y if x.strip()] for y in data]
   for x in [x for x in data if len(x) == 2]:
     try:
       if x[1].lower() == "load" or x[1].lower() == "default":
         # Load plugins
         i = importlib.import_module(x[0].replace("/", "."))
         plugin = getattr(i, x[0].split("/")[-1])()
         plugin.setUID(plugin.getName().replace(" ", "_"))
         # Ensure UID's unique
         while True:
           if plugin.getUID() in self.plugins.keys(): plugin.setUID(plugin.getUID()+"_");
           else: break
         # Load settings if needed
         if x[1].lower() == "load":
           plugin.loadSettings(settingsReader)
         # Set load state
         plugin.setLoadState(x[1])
         # Add to list
         self.plugins[plugin.getUID().strip()] = plugin
         print("[+] Loaded plugin %s"%x[0])
     except Exception as e:
       print("[!] Failed to load module %s: "%x[0])
       print("[!]  -> %s"%e)
示例#2
0
 def loadPlugins(self):
   settingsReader = ConfigReader(conf.getPluginsettings())
   if not os.path.exists(conf.getPluginLoadSettings()):
       print("[!] Could not find plugin loader file!")
       return
   # Read and parse plugin file
   data = open(conf.getPluginLoadSettings(), "r").read()
   data = [x.split() for x in data.splitlines() if not x.startswith("#")]
   for x in [x for x in data if len(x) == 2]:
     try:
       if x[1].lower() == "load" or x[1].lower() == "default":
         # Load plugins
         i = importlib.import_module(x[0].replace("/", "."))
         plugin = getattr(i, x[0].split("/")[-1])()
         plugin.setUID(plugin.getName().replace(" ", "_"))
         # Ensure UID's unique
         while True:
           if plugin.getUID() in self.plugins.keys(): plugin.setUID(plugin.getUID()+"_");
           else: break
         # Load settings if needed
         if x[1].lower() == "load":
           plugin.loadSettings(settingsReader)
         # Set load state
         plugin.setLoadState(x[1])
         # Add to list
         self.plugins[plugin.getUID().strip()] = plugin
         print("[+] Loaded plugin %s"%x[0])
     except Exception as e:
       print("[!] Failed to load module %s: "%x[0])
       print("[!]  -> %s"%e)