Menu

[r179]: / pluginsystem.py  Maximize  Restore  History

Download this file

31 lines (27 with data), 800 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# -*- coding: utf-8 -*-
import os
from collections import defaultdict
#Global vars
plugins = defaultdict(list)
capabilities = []
def register(*events):
def registered_plugin(funct):
for event in events:
plugins[event].append(funct)
return funct
return registered_plugin
def trigger_event(event, *args, **kwargs):
for plugin in plugins[event]:
plugin(*args, **kwargs)
def load_plugins():
global capabilities
pdirs = []
for item in os.listdir("plugins" + os.path.sep):
if os.path.isdir("plugins" + os.path.sep + item) and not item[:1] == ".":
pdirs.append(item)
for f in pdirs:
try:
__import__("plugins." + f + ".main", globals(), locals(), [], -1)
except BaseException, e:
print e
trigger_event("get_capabilities", cap=capabilities)