From: yomguy Date: Wed, 11 Jan 2012 14:52:19 +0000 (+0100) Subject: add webm record during relay streaming X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=d657ae76bd10b17c9f27152ca107aa530b37925d;p=deefuzzer.git add webm record during relay streaming --- diff --git a/deefuzzer/station.py b/deefuzzer/station.py index 144a578..4ceadc5 100644 --- a/deefuzzer/station.py +++ b/deefuzzer/station.py @@ -264,11 +264,11 @@ class Station(Thread): if value == 1: if not os.path.exists(self.record_dir): os.makedirs(self.record_dir) - self.rec_file = self.short_name + '-' + \ + self.rec_file = self.short_name.replace('/', '_') + '-' + \ datetime.datetime.now().strftime("%x-%X").replace('/', '_') + '.' + self.channel.format self.recorder = Recorder(self.record_dir) self.recorder.open(self.rec_file) - elif value == 0: + elif value == 0 and not self.type == 'stream-m': self.recorder.close() date = datetime.datetime.now().strftime("%Y") if self.channel.format == 'mp3': @@ -472,7 +472,10 @@ class Station(Thread): self.artist = self.artist.replace('_', ' ') self.song = self.artist + ' : ' + self.title if self.type == 'stream-m': - self.channel.set_callback(RelayReader(self.relay_url).read_callback) + relay = RelayReader(self.relay_url) + self.channel.set_callback(relay.read_callback) + if self.record_mode: + relay.set_recorder(self.recorder) else: self.stream = self.player.relay_read() diff --git a/deefuzzer/tools/player.py b/deefuzzer/tools/player.py index 0814bab..51a8361 100644 --- a/deefuzzer/tools/player.py +++ b/deefuzzer/tools/player.py @@ -113,6 +113,14 @@ class FileReader: class RelayReader: def __init__(self, relay): self.relay = urllib.urlopen(relay) + self.rec_mode = 0 + + def set_recorder(self, recorder, mode=1): + self.rec_mode = mode + self.recorder = recorder def read_callback(self, size): - return self.relay.read(size) + chunk = self.relay.read(size) + if self.rec_mode == 1 and chunk: + self.recorder.write(chunk) + return chunk