예제 #1
0
파일: api.py 프로젝트: elElmo/walkman
	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()
예제 #2
0
파일: api.py 프로젝트: elElmo/walkman
	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})
예제 #3
0
파일: root.py 프로젝트: elElmo/walkman
	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()
예제 #4
0
	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)
예제 #5
0
	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
		)