From eac478e983078986bad1d11921f52b38e9104f69 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 13 Feb 2015 00:54:48 +0100 Subject: [PATCH] Fix no metadata for stream-m relaying Fix relay fallback when source not ready --- deefuzzer/relay.py | 7 +++++-- deefuzzer/station.py | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/deefuzzer/relay.py b/deefuzzer/relay.py index 4adbd63..b3d7c9a 100644 --- a/deefuzzer/relay.py +++ b/deefuzzer/relay.py @@ -48,6 +48,7 @@ class Relay(Thread): self.sub_buffer_size = sub_buffer_size self.queue_size = queue_size self.queue = Queue.Queue(self.queue_size) + self.stream = None def set_url(self, url): self.url = url @@ -70,6 +71,8 @@ class Relay(Thread): self.queue.put_nowait(self.chunk) # print self.queue.qsize() else: - self.stream.close() - break + if self.stream: + self.stream.close() + else: + self.open() diff --git a/deefuzzer/station.py b/deefuzzer/station.py index af4cb02..82cab2d 100644 --- a/deefuzzer/station.py +++ b/deefuzzer/station.py @@ -342,7 +342,7 @@ class Station(Thread): self.twitter_mode = value message = "received OSC message '%s' with arguments '%d'" % (path, value) - # IMPROVEMENT: The URL paths should be configurable because they're + # IMPROVEMENT: The URL paths should be configurable because they're # server-implementation specific self.m3u_url = self.channel.url + '/m3u/' + self.m3u.split(os.sep)[-1] self.feeds_url = self.channel.url + '/rss/' + self.feeds_playlist_file.split(os.sep)[-1] @@ -658,7 +658,9 @@ class Station(Thread): def set_relay_mode(self): self.prefix = '#nowplaying #LIVE' - self.get_currentsongmeta() + self.title = "" + self.artist = "" + self.song = "" if self.type == 'stream-m': relay = URLReader(self.relay_url) @@ -699,7 +701,7 @@ class Station(Thread): def set_read_mode(self): self.prefix = '#nowplaying' - + try: self.get_currentsongmeta() fn = self.current_media_obj.file_name @@ -808,6 +810,7 @@ class Station(Thread): def icecastloop_metadata(self): try: self.update_twitter_current() + if self.song: self.channel.set_metadata({'song': self.song, 'charset': 'utf-8'}) return True except Exception, e: -- 2.39.5