From 4fdf3c1b77349c8129c408483bac5623d61963ad Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 5 Sep 2012 16:04:11 -0400 Subject: [PATCH 1/3] MM2: Removed assertion in favor of warning. --- .../media-monitor2/media/monitor/eventcontractor.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/python_apps/media-monitor2/media/monitor/eventcontractor.py b/python_apps/media-monitor2/media/monitor/eventcontractor.py index f9ff96dd7..ececfb846 100644 --- a/python_apps/media-monitor2/media/monitor/eventcontractor.py +++ b/python_apps/media-monitor2/media/monitor/eventcontractor.py @@ -48,8 +48,12 @@ class EventContractor(Loggable): # checked against the newest event 'evt' in this case self.unregister( old_e ) evt.add_safe_pack_hook( lambda : self.__unregister(evt) ) - assert evt.path not in self.store, \ - "Clean up should have been called by '%s'" % evt + + if evt.path in self.store: + self.logger.warn("Clean up should have been called by '%s'" % + str(evt)) + self.logger.warn("Overwriting event for '%s'" % evt.path) + self.store[ evt.path ] = evt return True # We actually added something, hence we return true. From 272840eb5a3d04aeeae05b296ba4b986e79e6817 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 5 Sep 2012 16:04:28 -0400 Subject: [PATCH 2/3] Added logging for liquidsoap run command. --- python_apps/media-monitor2/media/monitor/pure.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python_apps/media-monitor2/media/monitor/pure.py b/python_apps/media-monitor2/media/monitor/pure.py index 77a725941..3116fa3fd 100644 --- a/python_apps/media-monitor2/media/monitor/pure.py +++ b/python_apps/media-monitor2/media/monitor/pure.py @@ -477,10 +477,11 @@ def file_playable(pathname): #between them. We run the command as pypo because otherwise the target file #is opened with write permissions, and this causes an inotify ON_CLOSE_WRITE #event to be fired :/ - return True command = ("airtime-liquidsoap -c 'output.dummy" + \ "(audio_to_stereo(single(\"%s\")))' > /dev/null 2>&1") % \ pathname.replace("'", "'\\''") + print(command) + return True return_code = subprocess.call(command, shell=True) return (return_code == 0) From 0798d67b2dd852c9ca7ed7df63258e063c9ebbf2 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 5 Sep 2012 16:04:59 -0400 Subject: [PATCH 3/3] cc-4350: Possible fix. --- python_apps/media-monitor2/media/monitor/events.py | 6 +++--- python_apps/media-monitor2/media/monitor/metadata.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/python_apps/media-monitor2/media/monitor/events.py b/python_apps/media-monitor2/media/monitor/events.py index 660ff4c40..1941ea5b1 100644 --- a/python_apps/media-monitor2/media/monitor/events.py +++ b/python_apps/media-monitor2/media/monitor/events.py @@ -113,9 +113,9 @@ class BaseEvent(Loggable): self._raw_event = evt self.path = evt.path self.__class__ = evt.__class__ - # We don't transfer the _pack_hook over to the new event - # TODO : perhaps we should call the old events pack_hook just to make - # sure everything is done cleanly? + # Clean up old hook and transfer the new events hook + self.reset_hook() + self.add_safe_pack_hook( evt._pack_hook ) return self def assign_owner(self,req): diff --git a/python_apps/media-monitor2/media/monitor/metadata.py b/python_apps/media-monitor2/media/monitor/metadata.py index 7405d3b12..6f45ab8f1 100644 --- a/python_apps/media-monitor2/media/monitor/metadata.py +++ b/python_apps/media-monitor2/media/monitor/metadata.py @@ -172,6 +172,7 @@ class Metadata(Loggable): return # TODO : Simplify the way all of these rules are handled right not it's # extremely unclear and needs to be refactored. + if full_mutagen is None: full_mutagen = {} self.__metadata = Metadata.airtime_dict(full_mutagen) # Now we extra the special values that are calculated from the mutagen # object itself: