From b0f26c1ef2f7b3935bcda233840532916ef7dc74 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 3 Nov 2009 12:30:50 +0000 Subject: [PATCH] add jingle support --- deefuzzer.py | 39 +++++++++++++++++++++++++++++++++++---- example/myfuzz.xml | 39 +++++---------------------------------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/deefuzzer.py b/deefuzzer.py index c81ebb9..790a460 100755 --- a/deefuzzer.py +++ b/deefuzzer.py @@ -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() diff --git a/example/myfuzz.xml b/example/myfuzz.xml index 0994517..676e501 100644 --- a/example/myfuzz.xml +++ b/example/myfuzz.xml @@ -34,40 +34,11 @@ xxxxxx bla bla - - - - My_Station_2 - My best groovy station - My personal best groovy playlist ever ! - http://mydomain.com - Other - - - localhost - 8000 - icecast_source_password - 1 - - - /path/to/my/mp3/ - mp3 - 192 - 7 - 44100s - 2 - 0 - - - /tmp/rss/ - 1 - - - 0 - xxxxxx - xxxxxx - bla bla - + + 1 + /path/to/jingles + 1 + -- 2.39.5