File size: 710 Bytes
d488241
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import importlib.util
from pathlib import Path

class PluginManager:
    def __init__(self):
        self.plugins = {}
        
    def load_plugins(self, directory="plugins"):
        for plugin_file in Path(directory).glob("*.py"):
            spec = importlib.util.spec_from_file_location(plugin_file.stem, plugin_file)
            module = importlib.util.module_from_spec(spec)
            spec.loader.exec_module(module)
            self.plugins[plugin_file.stem] = module
            
    def run_analysis(self, ad):
        results = {}
        for name, plugin in self.plugins.items():
            if hasattr(plugin, "analyze"):
                results[name] = plugin.analyze(ad)
        return results