summaryrefslogtreecommitdiffstats
path: root/curunir.py
diff options
context:
space:
mode:
Diffstat (limited to 'curunir.py')
-rw-r--r--curunir.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/curunir.py b/curunir.py
index 7d14410..7f6a699 100644
--- a/curunir.py
+++ b/curunir.py
@@ -3,6 +3,18 @@ from connection.xmpp import XMPPConnection
import signal, sys
from config import config
+class ModuleManager:
+ def __init__(self, config):
+ self.config = config
+ self.modules = []
+
+ for mod in config['modules']:
+ self.load(mod)
+
+ def load(self, name):
+ mod = __import__('modules.' + name, globals(), locals(), ['Module'])
+ self.modules.append(mod.Module(self))
+
run = True
def exithandler(signum, frame):
@@ -13,10 +25,14 @@ signal.signal(signal.SIGINT, exithandler)
signal.signal(signal.SIGTERM, exithandler)
signal.signal(signal.SIGQUIT, exithandler)
-connection = XMPPConnection(config)
+modman = ModuleManager(config)
+
+connection = XMPPConnection(config, modman)
connection.connect()
while run:
- connection.stream.loop_iter(1)
+ act = connection.stream.loop_iter(1)
+ if not act:
+ connection.idle()
connection.disconnect()