]>
jfr.im git - irc/rizon/acid.git/blob - pyva/src/main/python/plugin.py
7 class AcidPlugin(object):
9 super(AcidPlugin
, self
).__init
__()
11 self
.prefix
= config
.get('control', 'prefix')
12 self
.logchan
= config
.get('control', 'channel')
13 self
.log
= logging
.getLogger(__name__
)
15 self
.dbp
= dbx
.cursor()
23 def getCommands(self
):
27 plugin_to_modname
= lambda x
: '%s.%s' % (x
, x
)
29 def loadPlugin(plugin
, inter
):
34 modname
= plugin_to_modname(plugin
)
36 mod
= importlib
.import_module(modname
)
37 obj
= getattr(mod
, plugin
)()
43 modules
[modname
] = obj
45 def unloadPlugin(plugin
):
48 modname
= plugin_to_modname(plugin
)
50 obj
= modules
[modname
]
53 deps
= [module
for module
in sys
.modules
if module
.startswith(modname
+ '.')]
56 if plugin
in sys
.modules
:
57 del sys
.modules
[modname
]
59 del sys
.modules
[modname
]
65 def call(name
, *args
):
68 for m
in modules
.itervalues():
70 func
= getattr(m
, name
)