refresh_interval = 6 * 60 * 60
class mywoodchuck (PyWoodchuck):
- def __init__(self, listing, *args):
- PyWoodchuck.__init__ (self, *args)
+ def __init__(self, listing, human_readable_name, identifier,
+ request_feedback):
+ try:
+ PyWoodchuck.__init__ (self, human_readable_name, identifier,
+ request_feedback)
+ except Exception, e:
+ logger.error(
+ "Failed to establish a connection to the Woodchuck server: %s"
+ % (str(e),))
+ self.available = self.not_available
+ return
self.listing = listing
+ def not_available(self):
+ 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,))
% (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):
+def wc_init(listing, request_feedback=False):
+ """Connect to the woodchuck server and initialize any state."""
global _w
assert _w is None
- _w = mywoodchuck (listing, "FeedingIt", "org.maemo.feedingit")
+ _w = mywoodchuck (listing, "FeedingIt", "org.marcoz.feedingit",
+ request_feedback)
if not woodchuck_imported or not _w.available ():
logger.info("Unable to contact Woodchuck server.")
logger.debug("Woodchuck appears to be available.")
def wc():
- """Connect to the woodchuck server and initialize any state."""
+ """Return the Woodchuck singleton."""
global _w
assert _w is not None
return _w