--- /tmp/rb-im-status-0.7/__init__.py 2008-04-06 14:55:36.000000000 +0200 +++ __init__.py 2008-04-06 15:33:44.000000000 +0200 @@ -66,6 +66,7 @@ self.restore_status () def playing_changed (self, sp, playing): + self.stream_info = {} if playing: self.set_entry (sp.get_playing_entry ()) else: @@ -73,12 +74,17 @@ self.restore_status () def playing_entry_changed (self, sp, entry): + self.stream_info = {} if sp.get_playing (): self.set_entry (entry) def playing_song_property_changed (self, sp, uri, property, old, new): if sp.get_playing () and (property == "artist" or property == "title"): self.set_status_from_entry () + if sp.get_playing () and property in ('rb:stream-song-title', 'rb:stream-song-artist'): + self.stream_info[property] = new + if len(self.stream_info.keys()) == 2: + self.set_status_from_stream () def set_entry (self, entry): if entry == self.current_entry: @@ -102,6 +108,12 @@ new_status = _(u"♫ %s - %s ♫") % (artist, song) self.set_status (new_status) + def set_status_from_stream (self): + new_status = _(u"♫ %s - %s ♫") % ( + self.stream_info.get('rb:stream-song-artist'), + new_status = _(u"♫ %s - %s ♫") % ( + self.stream_info.get('rb:stream-song-artist'), + self.stream_info.get('rb:stream-song-title')) + self.set_status (new_status) + def set_status (self, new_status): self.set_gossip_status (new_status) self.set_empathy_status (new_status)