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. 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: 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)