From: Guillaume Pellerin Date: Tue, 3 Nov 2009 14:30:21 +0000 (+0000) Subject: fix new track twitting X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=55deba0cbb05c3a8023f7051e25ff1ebb691a7e4;p=deefuzzer.git fix new track twitting --- diff --git a/deefuzzer.py b/deefuzzer.py index c350dc2..8ec842d 100755 --- a/deefuzzer.py +++ b/deefuzzer.py @@ -51,7 +51,7 @@ import tinyurl from threading import Thread from tools import * -version = '0.3.3' +version = '0.4' year = datetime.datetime.now().strftime("%Y") platform_system = platform.system() @@ -288,16 +288,6 @@ class Station(Thread): 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) - 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 update_rss(self, media_list, rss_file, sub_title): rss_item_list = [] if not os.path.exists(self.rss_dir): @@ -386,9 +376,19 @@ 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: + old_playlist = self.playlist new_playlist = self.get_playlist() lp_new = len(new_playlist) @@ -397,11 +397,30 @@ class Station(Thread): self.id = 0 self.lp = lp_new + # Twitting new tracks + new_playlist_set = set(self.playlist) + old_playlist_set = set(old_playlist) + new_tracks = new_playlist_set - old_playlist_set + if len(new_tracks) != 0: + self.new_tracks = list(new_tracks.copy()) + new_tracks_objs = self.media_to_objs(self.new_tracks) + + for media_obj in new_tracks_objs: + title = media_obj.metadata['title'] + artist = media_obj.metadata['artist'] + if not (title or artist): + song = str(media_obj.file_name) + else: + song = artist + ' : ' + title + song = song.encode('utf-8') + artist = artist.encode('utf-8') + message = 'New track ! %s #%s #%s' % (song.replace('_', ' '), artist.replace(' ', ''), self.short_name) + self.update_twitter(message) + if self.mode_shuffle == 1: # 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)') @@ -499,7 +518,8 @@ class Station(Thread): % (self.short_name, self.id, self.current_media_obj[0].file_name)) if not (self.jingles_mode == '1' and (self.counter % 2) == 1): - self.update_twitter() + message = 'Now playing: %s #%s #%s' % (self.song.replace('_', ' '), self.artist.replace(' ', ''), self.short_name) + self.update_twitter(message) stream = self.core_process_read(media) q.task_done()