From f36db0f453e0669c307fcace8ef95e8f73e3ffa5 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 3 Nov 2009 15:04:57 +0000 Subject: [PATCH] cleanup --- deefuzzer.py | 159 +++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 81 deletions(-) diff --git a/deefuzzer.py b/deefuzzer.py index 8ec842d..05b35d4 100755 --- a/deefuzzer.py +++ b/deefuzzer.py @@ -51,7 +51,7 @@ import tinyurl from threading import Thread from tools import * -version = '0.4' +version = '0.3.5' year = datetime.datetime.now().strftime("%Y") platform_system = platform.system() @@ -68,8 +68,8 @@ def prog_info(): you should have received as part of this distribution. The terms are also available at http://svn.parisson.org/deefuzzer/DeeFuzzerLicense - depends : python, python-xml, python-shout, libshout3, icecast2 - recommends : python-mutagen + depends : python, python-xml, python-shout, libshout3, icecast2, + python-mutagen, python-twitter, python-tinyurl provides : python-shout Usage : deefuzzer $1 @@ -288,72 +288,6 @@ class Station(Thread): self.jingles_length = len(self.jingles_list) self.jingle_id = 0 - def update_rss(self, media_list, rss_file, sub_title): - rss_item_list = [] - if not os.path.exists(self.rss_dir): - os.makedirs(self.rss_dir) - - channel_subtitle = self.channel.name + ' ' + sub_title - _date_now = datetime.datetime.now() - date_now = str(_date_now) - media_absolute_playtime = _date_now - - for media in media_list: - media_stats = os.stat(media.media) - media_date = time.localtime(media_stats[8]) - media_date = time.strftime("%a, %d %b %Y %H:%M:%S +0200", media_date) - media.metadata['Duration'] = str(media.length).split('.')[0] - media.metadata['Bitrate'] = str(media.bitrate) + ' kbps' - media.metadata['Next play'] = str(media_absolute_playtime).split('.')[0] - - media_description = '' - media_description_item = '' - for key in media.metadata.keys(): - if media.metadata[key] != '': - media_description += media_description_item % (key.capitalize(), media.metadata[key]) - media_description += '
%s: %s
' - - title = media.metadata['title'] - artist = media.metadata['artist'] - if not (title or artist): - song = str(media.file_title) - else: - song = artist + ' : ' + title - - media_absolute_playtime += media.length - - if self.rss_enclosure == '1': - media_link = self.channel.url + '/media/' + media.file_name - media_link = media_link.decode('utf-8') - rss_item_list.append(PyRSS2Gen.RSSItem( - title = song, - link = media_link, - description = media_description, - enclosure = PyRSS2Gen.Enclosure(media_link, str(media.size), 'audio/mpeg'), - guid = PyRSS2Gen.Guid(media_link), - pubDate = media_date,) - ) - else: - media_link = self.metadata_url + '/' + media.file_name + '.xml' - media_link = media_link.decode('utf-8') - rss_item_list.append(PyRSS2Gen.RSSItem( - title = song, - link = media_link, - description = media_description, - guid = PyRSS2Gen.Guid(media_link), - pubDate = media_date,) - ) - - rss = PyRSS2Gen.RSS2(title = channel_subtitle, - link = self.channel.url, - description = self.channel.description.decode('utf-8'), - lastBuildDate = date_now, - items = rss_item_list,) - - f = open(rss_file, 'w') - rss.write_xml(f, 'utf-8') - f.close() - def get_playlist(self): file_list = [] for root, dirs, files in os.walk(self.media_dir): @@ -376,15 +310,6 @@ class Station(Thread): file_list.sort() return file_list - def update_twitter(self, message): - if self.twitter_mode == '1': - tags = '#' + ' #'.join(self.twitter_tags) - message = message + ' ' + tags - message = message[:113] + ' ' + self.tinyurl - message = message.decode('utf8') - self.logger.write('Twitting : "' + message + '"') - self.twitter.post(message) - def get_next_media(self): # Init playlist if self.lp != 0: @@ -393,6 +318,7 @@ class Station(Thread): lp_new = len(new_playlist) if lp_new != self.lp or self.counter == 0: + # Init playlists self.playlist = new_playlist self.id = 0 self.lp = lp_new @@ -439,9 +365,6 @@ class Station(Thread): self.logger.write(mess) sys.exit(mess) - def log_queue(self, it): - self.logger.write('Station ' + self.short_name + ' eated one queue step: '+str(it)) - def media_to_objs(self, media_list): media_objs = [] for media in media_list: @@ -451,6 +374,80 @@ class Station(Thread): elif file_ext.lower() == 'ogg': media_objs.append(Ogg(media)) return media_objs + def update_rss(self, media_list, rss_file, sub_title): + rss_item_list = [] + if not os.path.exists(self.rss_dir): + os.makedirs(self.rss_dir) + + channel_subtitle = self.channel.name + ' ' + sub_title + _date_now = datetime.datetime.now() + date_now = str(_date_now) + media_absolute_playtime = _date_now + + for media in media_list: + media_stats = os.stat(media.media) + media_date = time.localtime(media_stats[8]) + media_date = time.strftime("%a, %d %b %Y %H:%M:%S +0200", media_date) + media.metadata['Duration'] = str(media.length).split('.')[0] + media.metadata['Bitrate'] = str(media.bitrate) + ' kbps' + media.metadata['Next play'] = str(media_absolute_playtime).split('.')[0] + + media_description = '' + media_description_item = '' + for key in media.metadata.keys(): + if media.metadata[key] != '': + media_description += media_description_item % (key.capitalize(), media.metadata[key]) + media_description += '
%s: %s
' + + title = media.metadata['title'] + artist = media.metadata['artist'] + if not (title or artist): + song = str(media.file_title) + else: + song = artist + ' : ' + title + + media_absolute_playtime += media.length + + if self.rss_enclosure == '1': + media_link = self.channel.url + '/media/' + media.file_name + media_link = media_link.decode('utf-8') + rss_item_list.append(PyRSS2Gen.RSSItem( + title = song, + link = media_link, + description = media_description, + enclosure = PyRSS2Gen.Enclosure(media_link, str(media.size), 'audio/mpeg'), + guid = PyRSS2Gen.Guid(media_link), + pubDate = media_date,) + ) + else: + media_link = self.metadata_url + '/' + media.file_name + '.xml' + media_link = media_link.decode('utf-8') + rss_item_list.append(PyRSS2Gen.RSSItem( + title = song, + link = media_link, + description = media_description, + guid = PyRSS2Gen.Guid(media_link), + pubDate = media_date,) + ) + + rss = PyRSS2Gen.RSS2(title = channel_subtitle, + link = self.channel.url, + description = self.channel.description.decode('utf-8'), + lastBuildDate = date_now, + items = rss_item_list,) + + f = open(rss_file, 'w') + rss.write_xml(f, 'utf-8') + f.close() + + def update_twitter(self, message): + if self.twitter_mode == '1': + tags = '#' + ' #'.join(self.twitter_tags) + message = message + ' ' + tags + message = message[:113] + ' ' + self.tinyurl + message = message.decode('utf8') + self.logger.write('Twitting : "' + message + '"') + self.twitter.post(message) def core_process_stream(self, media): """Read media and stream data through a generator. -- 2.39.5