psa: Added update notification in UI
[feedingit] / src / wc.py
index b061138..c28d1d7 100644 (file)
--- a/src/wc.py
+++ b/src/wc.py
@@ -45,7 +45,7 @@ class mywoodchuck (PyWoodchuck):
         try:
             PyWoodchuck.__init__ (self, human_readable_name, identifier,
                                   request_feedback)
-        except woodchuck.Error, e:
+        except Exception, e:
             logger.error(
                 "Failed to establish a connection to the Woodchuck server: %s"
                 % (str(e),))
@@ -58,7 +58,7 @@ class mywoodchuck (PyWoodchuck):
         return False
 
     # Woodchuck upcalls.
-    def stream_update_cb(self, stream):
+    def stream_update_cb(self, stream, *args, **kwargs):
         logger.debug("stream update called on %s (%s)"
                      % (stream.human_readable_name, stream.identifier,))
 
@@ -71,10 +71,18 @@ class mywoodchuck (PyWoodchuck):
                          % (stream.identifier, traceback.format_exc ()))
 
     def object_transfer_cb(self, stream, object,
-                           version, filename, quality):
-        log ("object transfer called on %s (%s) in stream %s (%s)"
-             % (object.human_readable_name, object.identifier,
-                stream.human_readable_name, stream.identifier))
+                           version, filename, quality,
+                           *args, **kwargs):
+        logger.debug ("object transfer called on %s (%s) in stream %s (%s)"
+                      % (object.human_readable_name, object.identifier,
+                         stream.human_readable_name, stream.identifier))
+        try:
+            self[stream.identifier][object.identifier].dont_transfer = True
+        except Exception, e:
+            logger.warn("Setting '%s'(%s).'%s'(%s).DontTransfer: %s"
+                        % (stream.human_readable_name, stream.identifier,
+                           object.human_readable_name, object.identifier,
+                           str(e)))
 
 _w = None
 def wc_init(listing, request_feedback=False):