]> git.parisson.com Git - deefuzzer.git/commitdiff
add fancy twitter metadata, Station object cleanup
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 Jan 2010 23:27:30 +0000 (23:27 +0000)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 Jan 2010 23:27:30 +0000 (23:27 +0000)
deefuzzer.py

index 6345f06fea23189793f3f04aec7c1ebe4f030736..6f141c86cddf1af13aab0b7466de9db31ed53726 100755 (executable)
@@ -496,7 +496,10 @@ class Station(Thread):
         rss.write_xml(f, 'utf-8')
         f.close()
 
-    def update_twitter(self, message):
+    def update_twitter(self):
+        artist_names = self.artist.split(' ')
+        artist_tags = ' #'.join(artist_names)
+        message = '♫ %s %s on #%s #%s' % (self.prefix, self.song, self.short_name, artist_tags)
         tags = '#' + ' #'.join(self.twitter_tags)
         message = message + ' ' + tags
         message = message[:113] + ' ' + self.tinyurl
@@ -504,6 +507,36 @@ class Station(Thread):
         self.logger.write('Twitting : "' + message + '"')
         self.twitter.post(message)
 
+    def set_relay_mode(self):
+        self.prefix = '#NowPlaying (relaying *LIVE*) :'
+        song = self.relay_url
+        self.song = song.encode('utf-8')
+        self.artist = 'Various'
+        self.channel.set_metadata({'song': self.short_name + ' relaying : ' + self.song, 'charset': 'utf8',})
+        self.stream = self.player.relay_read()
+
+    def set_read_mode(self):
+        self.prefix = '#NowPlaying :'
+        self.current_media_obj = self.media_to_objs([self.media])
+        self.title = self.current_media_obj[0].metadata['title']
+        self.artist = self.current_media_obj[0].metadata['artist']
+        self.title = self.title.replace('_', ' ')
+        self.artist = self.artist.replace('_', ' ')
+        if not (self.title or self.artist):
+            song = str(self.current_media_obj[0].file_name)
+        else:
+            song = self.artist + ' : ' + self.title
+        self.song = song.encode('utf-8')
+        self.artist = self.artist.encode('utf-8')
+        self.metadata_file = self.metadata_dir + os.sep + self.current_media_obj[0].file_name + '.xml'
+        self.update_rss(self.current_media_obj, self.metadata_file, '')
+        self.channel.set_metadata({'song': self.song, 'charset': 'utf8',})
+        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.player.set_media(self.media)
+        self.stream = self.player.file_read_slow()
+
     def run(self):
         while True:
             self.q.get(1)
@@ -514,42 +547,14 @@ class Station(Thread):
 
             self.q.get(1)
             if self.relay_mode == 1:
-                self.prefix = 'Now relaying *LIVE* :'
-                song = self.relay_url
-                self.song = song.encode('utf-8')
-                self.artist = 'Various'
-                self.channel.set_metadata({'song': self.short_name + ' relaying : ' + self.song, 'charset': 'utf8',})
-                self.stream = self.player.relay_read()
-
+                self.set_relay_mode()
             elif os.path.exists(self.media) and not os.sep+'.' in self.media:
                 if self.lp == 0:
                     self.logger.write('Error : Station ' + self.short_name + ' have no media to stream !')
                     break
-                self.prefix = 'Now playing :'
-                self.current_media_obj = self.media_to_objs([self.media])
-                self.title = self.current_media_obj[0].metadata['title']
-                self.artist = self.current_media_obj[0].metadata['artist']
-                self.title = self.title.replace('_', ' ')
-                self.artist = self.artist.replace('_', ' ')
-                if not (self.title or self.artist):
-                    song = str(self.current_media_obj[0].file_name)
-                else:
-                    song = self.artist + ' : ' + self.title
-                self.song = song.encode('utf-8')
-                self.artist = self.artist.encode('utf-8')
-                self.metadata_file = self.metadata_dir + os.sep + self.current_media_obj[0].file_name + '.xml'
-                self.update_rss(self.current_media_obj, self.metadata_file, '')
-                self.channel.set_metadata({'song': self.song, 'charset': 'utf8',})
-                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.player.set_media(self.media)
-                self.stream = self.player.file_read_slow()
-
+                self.set_read_mode()
             if (not (self.jingles_mode == 1 and (self.counter % 2) == 1) or self.relay_mode == 1) and self.twitter_mode == 1:
-                message = '%s %s #%s #%s' % (self.prefix, self.song, self.artist, self.short_name)
-                self.update_twitter(message)
-
+                self.update_twitter()
             self.q.task_done()
 
             for self.chunk in self.stream: