class DAgentPluginManager(object): def __init__(self, plugindir): self.logger = WrapLogger() self.pluginmanager = PluginManager(plugindir, self.logger) self.pluginmanager.loadPlugins(IMapiDAgentPlugin) def PostConverting(self, session, addrbook, store, folder, message): return self.pluginmanager.processPluginFunction( 'PostConverting', session, addrbook, store, folder, message) def PreDelivery(self, session, addrbook, store, folder, message): return self.pluginmanager.processPluginFunction( 'PreDelivery', session, addrbook, store, folder, message) def PostDelivery(self, session, addrbook, store, folder, message): return self.pluginmanager.processPluginFunction( 'PostDelivery', session, addrbook, store, folder, message) def PreRuleProcess(self, session, addrbook, store, rulestable): return self.pluginmanager.processPluginFunction( 'PreRuleProcess', session, addrbook, store, rulestable) def SendNewMailNotify(self, session, addrbook, store, folder, message): return self.pluginmanager.processPluginFunction( 'SendNewMailNotify', session, addrbook, store, folder, message)
class SpoolerPluginManager(object): def __init__(self, plugindir, logger): self.logger = WrapLogger(logger) self.pluginmanager = PluginManager(plugindir, self.logger) self.pluginmanager.loadPlugins(IMapiSpoolerPlugin) def PreSending(self, session, addrbook, store, folder, message): return self.pluginmanager.processPluginFunction('PreSending', session, addrbook, store, folder, message)
def main(): manager = PluginManager() manager.setPluginPaths(["plugins"]) manager.loadPlugins() app = QApplication(sys.argv) dialog = PluginDialog(manager) dialog.show() app.exec_()
class Client(object): def __init__(self): self.pluginmanager = PluginManager() self.pluginmanager.loadPlugins() @classmethod def loadFont(cls): """加载外部字体""" path = os.path.join(Settings().dataDir, "fonts") for font in os.listdir(path): QFontDatabase.addApplicationFont(os.path.join(path, font))