class App(object): def __init__(self): self.sp = Spotify() def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): self.sp.search('daft punk', count=7, callback=self.on_search) def on_search(self, result): # Artists print 'artists (%s)' % result.artists_total for artist in result.artists: print '\t[%s] "%s"' % (artist.uri, artist.name) if not artist.portraits: continue for portrait in artist.portraits: print '\t\t', portrait.file_url # Albums print 'albums (%s)' % result.albums_total for album in result.albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ', '.join( [ar.name for ar in album.artists])) if not album.covers: continue for cover in album.covers: print '\t\t', cover.file_url # Tracks print 'tracks (%s)' % result.tracks_total for track in result.tracks: print '\t[%s] "%s" - %s' % (track.uri, track.name, ', '.join( [ar.name for ar in track.artists if ar.name])) # Playlists print 'playlists (%s)' % result.playlists_total for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name)
class App(object): def __init__(self): self.sp = Spotify() def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): self.sp.search('daft punk', count=20, callback=self.on_search) def on_search(self, result): # Artists if result.artists: print 'artists (%s)' % len(result.artists) def on_artists(artists): for artist in artists: print '\t[%s] "%s"' % (artist.uri, artist.name) self.sp.metadata([ar.uri for ar in result.artists], on_artists) # Albums if result.albums: print 'albums (%s)' % len(result.albums) def on_albums(albums): for album in albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ', '.join([ar.name for ar in album.artists])) self.sp.metadata([al.uri for al in result.albums], on_albums) # Tracks if result.tracks: print 'tracks (%s)' % len(result.tracks) def on_tracks(tracks): for track in tracks: print '\t[%s] "%s" - %s' % (track.uri, track.name, ', '.join([ar.name for ar in track.artists if ar.name])) self.sp.metadata([tr.uri for tr in result.tracks], on_tracks) # Playlists if result.playlists: print 'playlists (%s)' % len(result.playlists) for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name)
class App(object): def __init__(self): self.sp = Spotify() def run(self): @self.sp.login(os.environ["USERNAME"], os.environ["PASSWORD"]) def on_login(): self.sp.search("daft punk", count=7, callback=self.on_search) def on_search(self, result): # Artists print "artists (%s)" % result.artists_total for artist in result.artists: print '\t[%s] "%s"' % (artist.uri, artist.name) if not artist.portraits: continue for portrait in artist.portraits: print "\t\t", portrait.file_url # Albums print "albums (%s)" % result.albums_total for album in result.albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ", ".join([ar.name for ar in album.artists])) if not album.covers: continue for cover in album.covers: print "\t\t", cover.file_url # Tracks print "tracks (%s)" % result.tracks_total for track in result.tracks: print '\t[%s] "%s" - %s' % (track.uri, track.name, ", ".join([ar.name for ar in track.artists if ar.name])) # Playlists print "playlists (%s)" % result.playlists_total for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name)
class App(object): def __init__(self): self.sp = Spotify() self.logged_in = False self.return_only = ["tracks"] def run(self, uname, pword): # @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) @self.sp.login(uname, pword) def on_login(): self.sp.search('daft punk', count=7, callback=self.on_search) self.logged_in = True def do_search(self, sterm): global searching searching = True try: str_sterm = str(sterm) except UnicodeEncodeError as _uee: str_sterm = "".join([c for c in sterm if curses.ascii.isascii(c)]) str_sterm = str(str_sterm) assert isinstance(str_sterm, str) self.sp.search(str_sterm, count=1, callback=self.on_search) def on_search(self, result): global searching # Artists if not self.return_only or "artists" in self.return_only: print 'artists (%s)' % result.artists_total for artist in result.artists: print '\t[%s] "%s"' % (artist.uri, artist.name) if not artist.portraits: continue for portrait in artist.portraits: print '\t\t', portrait.file_url # Albums if not self.return_only or "albums" in self.return_only: print 'albums (%s)' % result.albums_total for album in result.albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ', '.join( [ar.name for ar in album.artists])) if not album.covers: continue for cover in album.covers: print '\t\t', cover.file_url # Tracks if not self.return_only or "tracks" in self.return_only: #print 'tracks (%s)' % result.tracks_total for track in result.tracks: print '\t%s [%s] "%s" - %s' % (uri_to_url( track.uri), track.uri, track.name, ', '.join( [ar.name for ar in track.artists if ar.name])) # Playlists if not self.return_only or "playlists" in self.return_only: print 'playlists (%s)' % result.playlists_total for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name) searching = False
class App(object): def __init__(self): self.sp = Spotify() self.logged_in = False self.return_only = ["tracks"] def run(self, uname, pword): # @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) @self.sp.login(uname, pword) def on_login(): self.sp.search('daft punk', count=7, callback=self.on_search) self.logged_in = True def do_search(self, sterm): global searching searching = True try: str_sterm = str(sterm) except UnicodeEncodeError as _uee: str_sterm = "".join([c for c in sterm if curses.ascii.isascii(c)]) str_sterm = str(str_sterm) assert isinstance(str_sterm, str) self.sp.search(str_sterm, count=1, callback=self.on_search) def on_search(self, result): global searching # Artists if not self.return_only or "artists" in self.return_only: print 'artists (%s)' % result.artists_total for artist in result.artists: print '\t[%s] "%s"' % (artist.uri, artist.name) if not artist.portraits: continue for portrait in artist.portraits: print '\t\t', portrait.file_url # Albums if not self.return_only or "albums" in self.return_only: print 'albums (%s)' % result.albums_total for album in result.albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ', '.join([ar.name for ar in album.artists])) if not album.covers: continue for cover in album.covers: print '\t\t', cover.file_url # Tracks if not self.return_only or "tracks" in self.return_only: #print 'tracks (%s)' % result.tracks_total for track in result.tracks: print '\t%s [%s] "%s" - %s' % (uri_to_url(track.uri), track.uri, track.name, ', '.join([ar.name for ar in track.artists if ar.name])) # Playlists if not self.return_only or "playlists" in self.return_only: print 'playlists (%s)' % result.playlists_total for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name) searching = False