]> git.parisson.com Git - deefuzzer.git/commitdiff
add jingle support
authorGuillaume Pellerin <yomguy@parisson.com>
Tue, 3 Nov 2009 12:30:50 +0000 (12:30 +0000)
committerGuillaume Pellerin <yomguy@parisson.com>
Tue, 3 Nov 2009 12:30:50 +0000 (12:30 +0000)
deefuzzer.py
example/myfuzz.xml

index c81ebb974975475d768c9f3fee9891278f9e380d..790a460400c5d0fa0afc3e1c284f69ce9b394d3c 100755 (executable)
@@ -279,6 +279,15 @@ class Station(Thread):
                 self.twitter_tags = self.station['twitter']['tags'].split(' ')
                 self.tinyurl = tinyurl.create_one(self.channel.url + '/m3u/' + self.m3u.split(os.sep)[-1])
 
+        if self.station['jingles']:
+            self.jingles_mode =  self.station['jingles']['mode']
+            self.jingles_shuffle = self.station['jingles']['shuffle']
+            self.jingles_dir = self.station['jingles']['dir']
+            if self.jingles_mode =='1':
+                self.jingles_list = self.get_jingles()
+                self.jingles_length = len(self.jingles_list)
+                self.jingle_id = 0
+
     def update_twitter(self):
         if self.twitter_mode == '1':
             message = 'now playing: %s #%s #%s' % (self.song.replace('_', ' '), self.artist.replace(' ', ''), self.short_name)
@@ -366,26 +375,46 @@ class Station(Thread):
         file_list.sort()
         return file_list
 
+    def get_jingles(self):
+        file_list = []
+        for root, dirs, files in os.walk(self.jingles_dir):
+            for file in files:
+                s = file.split('.')
+                ext = s[len(s)-1]
+                if ext.lower() == self.channel.format and not '/.' in file:
+                    file_list.append(root + os.sep + file)
+        file_list.sort()
+        return file_list
+
     def get_next_media(self):
         # Init playlist
         if self.lp != 0:
             new_playlist = self.get_playlist()
             lp_new = len(new_playlist)
-            #self.logger.write(self.playlist)
+
             if lp_new != self.lp or self.counter == 0:
                 self.playlist = new_playlist
                 self.id = 0
                 self.lp = lp_new
+
                 if self.mode_shuffle == 1:
-                # Shake it, Fuzz it !
+                    # Shake it, Fuzz it !
                     random.shuffle(self.playlist)
+
+
                 self.logger.write('Station ' + self.short_name + \
                                  ' : generating new playlist (' + str(self.lp) + ' tracks)')
                 self.update_rss(self.media_to_objs(self.playlist), self.rss_playlist_file, '(playlist)')
+
+            if self.jingles_mode == '1' and (self.counter % 2) == 0:
+                media = self.jingles_list[self.jingle_id]
+                self.jingle_id = (self.jingle_id + 1) % self.jingles_length
             else:
+                media = self.playlist[self.id]
                 self.id = (self.id + 1) % self.lp
 
-            return self.playlist[self.id]
+            return media
+
         else:
             mess = 'No media in media_dir !'
             self.logger.write(mess)
@@ -468,7 +497,9 @@ class Station(Thread):
                 self.update_rss(self.current_media_obj, self.rss_current_file, '(currently playing)')
                 self.logger.write('DeeFuzzing this file on %s :  id = %s, name = %s' \
                     % (self.short_name, self.id, self.current_media_obj[0].file_name))
-                self.update_twitter()
+
+                if not (self.jingles_mode == '1' and (self.counter % 2) == 1):
+                    self.update_twitter()
 
                 stream = self.core_process_read(media)
                 q.task_done()
index 099451737971ea971b8713a92a9fb24d4c9823ad..676e501ffb2924d502e4cbd91c79c4f637c10715 100644 (file)
             <pass>xxxxxx</pass>
             <tags>bla bla</tags>
         </twitter>
-    </station>
-    <station>
-        <infos>
-            <short_name>My_Station_2</short_name>
-            <name>My best groovy station</name>
-            <description>My personal best groovy playlist ever !</description>
-            <url>http://mydomain.com</url>
-            <genre>Other</genre>
-        </infos>
-        <server>
-            <host>localhost</host>
-            <port>8000</port>
-            <sourcepassword>icecast_source_password</sourcepassword>
-            <public>1</public>
-        </server>
-        <media>
-            <dir>/path/to/my/mp3/</dir>
-            <format>mp3</format>
-            <bitrate>192</bitrate>
-            <ogg_quality>7</ogg_quality>
-            <samplerate>44100</samplerate>s
-            <voices>2</voices>
-            <shuffle>0</shuffle>
-        </media>
-        <rss>
-            <dir>/tmp/rss/</dir>
-            <enclosure>1</enclosure>
-        </rss>
-        <twitter>
-            <mode>0</mode>
-            <user>xxxxxx</user>
-            <pass>xxxxxx</pass>
-            <tags>bla bla</tags>
-        </twitter>
+        <jingles>
+            <mode>1</mode>
+            <dir>/path/to/jingles</dir>
+            <shuffle>1</shuffle>
+        </jingles>
     </station>
 </deefuzzer>