]> git.parisson.com Git - deefuzzer.git/commitdiff
add webm record during relay streaming
authoryomguy <yomguy@parisson.com>
Wed, 11 Jan 2012 14:52:19 +0000 (15:52 +0100)
committeryomguy <yomguy@parisson.com>
Wed, 11 Jan 2012 14:52:19 +0000 (15:52 +0100)
deefuzzer/station.py
deefuzzer/tools/player.py

index 144a578ddd34a150f9037afc09b5902084325f2c..4ceadc578698d8563f3e95c6926e5ec8da0c3b1d 100644 (file)
@@ -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()
 
index 0814babfa770021d3ceb625ea0b5bc756eca5eb3..51a8361baad82bc6da5bdbb915f32841c2aa9dad 100644 (file)
@@ -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