def upvote(self, trackToken): pandora = Pandora(self.pool.getAgent()) user, walkman_user, connector = retrieve_user_info(cherrypy.session, self.Connector) response = pandora.rate_song(user, trackToken, PandoraApi._LOVED) try: song = session.query(PandoraListenedSong).filter_by(pandora_user_id=walkman_user.id).filter_by(pandora_track_token=trackToken).first() song.liked = True connector.commit() except: pass finally: connector.close() return self.respond_success()
def songs(self, stationId): user, walkman_user, connector = retrieve_user_info(cherrypy.session, self.Connector) pandora = Pandora(self.pool.getAgent()) walkman_user.station_id = stationId fragment = pandora.get_fragment(user, u"%s" % stationId) songs = [vars(Song(info)) for info in filter(lambda x: x.has_key('songName'), fragment)] for song in songs: walkman_user.listened_songs.append(PandoraListenedSong( song['title'], song['artist'], song['album'], song['trackToken'], liked = song['songRating'] if song['songRating'] else None )) walkman_user.listened_songs = walkman_user.listened_songs[-100:] connector.commit() connector.close() return self.respond_success({'songs': songs})
def portal(self): pandora = Pandora(self.pool.getAgent()) user, walkman_user, connector = retrieve_user_info(cherrypy.session, self.Connector) try: stations = pandora.get_station_list(user) stations = [{'stationName': s['stationName'], 'stationId': s['stationId']} for s in stations] stationIds = [long(station['stationId']) for station in stations] chosenStation = walkman_user.station_id if walkman_user.station_id in stationIds else stationIds[0] walkman_user.station_id = chosenStation connector.commit() return self.templates.get_template("portal.html").render( userId = user['userId'], userToken = user['userAuthToken'], stations = stations, stationId = chosenStation ) except ValueError: #return "Login failed, please do an 180" return self.login()
def settings(self): user, walkman_user, connector = retrieve_user_info(cherrypy.session, self.Connector) walkman_user.setKeepalive(True) connector.commit() return self.self.templates.get_template("views/settings.html").render(data=walkman_user.keepalive_info)
def history(self): user, walkman_user, connector = retrieve_user_info(cherrypy.session, self.Connector) return self.templates.get_template("views/history.html").render( history = walkman_user.listened_songs )