def objectFromURI(self, uris):
		if self.logged_in() == False:
			return False

		uris = [uris] if type(uris) != list else uris

		uri_type = SpotifyUtil.get_uri_type(uris[0])
		if uri_type == False:
			return None
		elif uri_type == "playlist":
			results =  [SpotifyPlaylist(self, uri=uri) for uri in uris]
		elif uri_type in ["track", "album", "artist"]:
			uris = [uri for uri in uris if not SpotifyUtil.is_local(uri)]
			objs = self.api.metadata_request(uris)
			objs = [objs] if type(objs) != list else objs
			if uri_type == "track":
				results = [SpotifyTrack(self, obj=obj) for obj in objs]
			elif uri_type == "album":
				results =  [SpotifyAlbum(self, obj=obj) for obj in objs]
			elif uri_type == "artist":
				results =  [SpotifyArtist(self, obj=obj) for obj in objs]
		else:
			return None

		if len(results) == 1:
			return results[0]
		else:
			return results
Beispiel #2
0
	def objectFromURI(self, uris, asArray = False):
		if self.logged_in() == False:
			return False

		uris = [uris] if type(uris) != list else uris
		if len(uris) == 0:
			return [] if asArray else None

		uri_type = SpotifyUtil.get_uri_type(uris[0])
		if uri_type == False:
			return None
		elif uri_type == "playlist":
			if len(uris) == 1:
				results = [SpotifyPlaylist(self, uri=uris[0])]
			else:
				thread_results = {}
				jobs = []
				for index in range(0, len(uris)):
					jobs.append((self, uris[index], thread_results, index))

				def work_function(spotify, uri, results, index):
					results[index] = SpotifyPlaylist(spotify, uri=uri)

				Spotify.doWorkerQueue(work_function, jobs)

				results = [v for k, v in thread_results.items()]

		elif uri_type in ["track", "album", "artist"]:
			uris = [uri for uri in uris if not SpotifyUtil.is_local(uri)]
			objs = self.api.metadata_request(uris)
			objs = [objs] if type(objs) != list else objs

			failed_requests = len([obj for obj in objs if obj == False])
			if failed_requests > 0:
				print failed_requests,"metadata requests failed"
			
			objs = [obj for obj in objs if obj != False]
			if uri_type == "track":
				tracks = [SpotifyTrack(self, obj=obj) for obj in objs]
				results = [track for track in tracks if self.AUTOREPLACE_TRACKS == False or track.isAvailable()]
			elif uri_type == "album":
				results =  [SpotifyAlbum(self, obj=obj) for obj in objs]
			elif uri_type == "artist":
				results =  [SpotifyArtist(self, obj=obj) for obj in objs]
		else:
			return None

		if asArray == False:
			if len(results) == 1:
				results = results[0]
			elif len(results) == 0:
				return None

		return results
def display_playlist(playlist):
	print playlist.attributes.name+"\n"

	if playlist.length > 0:
		track_uris = [track.uri for track in playlist.contents.items if not SpotifyUtil.is_local(track.uri)]
		tracks = sp.metadata_request(track_uris)
		for track in tracks:
			print track.name
	else:
		print "no tracks"

	print "\n"
def display_playlist(playlist):
    print playlist.attributes.name+"\n"

    if playlist.length > 0:
        track_uris = [track.uri for track in playlist.contents.items if not SpotifyUtil.is_local(track.uri)]
        tracks = sp.metadata_request(track_uris)
        for track in tracks:
            print track.name
    else:
        print "no tracks"

    print "\n"