Tons of fixes/tweaks/changes in general
[jamaendo] / jamaui / postoffice.py
index 9453176..078316c 100644 (file)
@@ -35,24 +35,26 @@ class PostOffice(object):
     def notify(self, tag, *data):
         clients = self.tags.get(tag)
         if clients:
-            #log.debug("(%s %s) -> [%s]",
-            #          tag,
-            #          " ".join(str(x) for x in data),
-            #          " ".join(repr(x) for x,_ in clients))
             for ref, client in clients:
                 client(*data)
 
     def connect(self, tag, ref, callback):
-        if tag not in self.tags:
-            self.tags[tag] = []
-        clients = self.tags[tag]
-        if callback not in clients:
-            clients.append((ref, callback))
+        if not isinstance(tag, list):
+            tag = [tag]
+        for t in tag:
+            if t not in self.tags:
+                self.tags[t] = []
+            clients = self.tags[t]
+            if callback not in clients:
+                clients.append((ref, callback))
 
     def disconnect(self, tag, ref):
-        if tag not in self.tags:
-            self.tags[tag] = []
-        self.tags[tag] = [(_ref, cb) for _ref, cb in self.tags[tag] if _ref != ref]
+        if not isinstance(tag, list):
+            tag = [tag]
+        for t in tag:
+            if t not in self.tags:
+                self.tags[t] = []
+            self.tags[t] = [(_ref, cb) for _ref, cb in self.tags[t] if _ref != ref]
 
 postoffice = PostOffice()