def track_changed(self): if not self.on: return if not bool(lib.SpPlaybackIsActiveDevice()): return self.pause() # Scrobble last song only if the song has been played more than half # of its duration or during more than 4 minutes if self.metadata and self.play_cumul > min( self.metadata["duration"] / 2000, 240): self.lastfm_network.scrobble( artist=self.metadata["artist_name"], title=self.metadata["track_name"], timestamp=int(self.metadata["time_on"]), album=self.metadata["album_name"], duration=(self.metadata["duration"] / 1000)) print "LastFM: scrobbled track " + self.metadata[ "track_name"] + " - " + self.metadata["artist_name"] # Update now playing song self.play_cumul = 0 self.play() self.metadata = get_metadata() self.metadata["time_on"] = time.time() self.lastfm_network.update_now_playing( artist=self.metadata["artist_name"], title=self.metadata["track_name"], album=self.metadata["album_name"], duration=int(self.metadata["duration"] / 1000))
def info_status(): return jsonify({ 'active': bool(lib.SpPlaybackIsActiveDevice()), 'playing': bool(lib.SpPlaybackIsPlaying()), 'shuffle': bool(lib.SpPlaybackIsShuffled()), 'repeat': bool(lib.SpPlaybackIsRepeated()), 'logged_in': bool(lib.SpConnectionIsLoggedIn()) })