if 'result' in result:
return self._parseArtists(result)
else:
- return ''
+ return []
# Search for albums
def getAlbumSearchResults(self, query, limit=ALBUM_LIMIT):
if 'result' in result:
return self._parseAlbums(result)
else:
- return ''
+ return []
# Search for songs
def getSongSearchResults(self, query, limit=SONG_LIMIT):
if 'result' in result:
return self._parseSongs(result)
else:
- return ''
+ return []
# Gets the popular songs
def getPopularSongsToday(self, limit=SONG_LIMIT):
if 'result' in result:
return self._parseSongs(result)
else:
- return ''
+ return []
# Gets the favorite songs of the logged-in user
def getUserFavoriteSongs(self):
if 'result' in result:
return self._parseSongs(result)
else:
- return ''
+ return []
# Get the url to link to a song on Grooveshark
def getSongURLFromSongID(self, songID):
else:
return ''
+ # Get the url to link to a song on Grooveshark
+ def getSongInfo(self, songID):
+ result = self._callRemote('getSongInfoEx', {'songID' : songID})
+ if 'result' in result and 'SongID' in result['result']:
+ info = result['result']
+ if 'CoverArtFilename' in info and info['CoverArtFilename'] != None:
+ info['CoverArtFilename'] = THUMB_URL+info['CoverArtFilename'].encode('ascii', 'ignore')
+ else:
+ info['CoverArtFilename'] = THUMB_URL_DEFAULT
+ return info
+ else:
+ return ''
+
# Gets the playlists of the logged-in user
def getUserPlaylists(self):
if (self.userID == 0):
return [];
result = self._callRemote('getUserPlaylists', {'sessionID' : self.sessionID})
if 'result' in result:
- playlists = result['result']['playlists']
- else:
- return []
- i = 0
- list = []
- while(i < len(playlists)):
- p = playlists[i]
- list.append([p['playlistName'].encode('ascii', 'ignore'), p['playlistID']])
- i = i + 1
- return sorted(list, key=itemgetter(0))
-
- # Gets playlist information
- def getPlaylistInfo(self, playlistID):
- result = self._callRemote('getPlaylistInfo', {'playlistID' : playlistID})
- if 'result' in result:
- return result['result']
+ return self._parsePlaylists(result)
else:
return []
-
+
# Creates a playlist with songs
def createPlaylist(self, name, songIDs):
result = self._callRemote('createPlaylist', {'name' : name, 'songIDs' : songIDs, 'sessionID' : self.sessionID})
- if 'result' in result and result['result']['success'] == 1:
- return result['result']['playlistID']
+ if 'result' in result and result['result']['success'] == 'true':
+ return result['result']['PlaylistID']
elif 'errors' in result:
- duplicate = False;
for error in result['errors']:
if (error['code'] == 800):
- duplicate = True;
- if (duplicate):
- return -1
+ return -1
else:
return 0
else:
# Sets the songs for a playlist
def setPlaylistSongs(self, playlistID, songIDs):
result = self._callRemote('setPlaylistSongs', {'playlistID' : playlistID, 'songIDs' : songIDs, 'sessionID' : self.sessionID})
- if 'result' in result and result['result']['success'] == 1:
+ if 'result' in result and result['result']['success'] == 'true':
return True;
else:
return False;
def getPlaylistSongs(self, playlistID):
result = self._callRemote('getPlaylistSongs', {'playlistID' : playlistID});
if 'result' in result:
- return result['result'];
- elif result['errors'] in result :
- return result['errors'][0]['code']
+ return self._parseSongs(result)
else:
- return {'error':-512};
+ return []
# Extract song data
def _parseSongs(self, items):
l = 1
index = 'song'
else:
- l = 0
+ l = len(items['result'])
index = ''
while(i < l):
if index == 'songs':
s = items['result'][index][i]
- else:
+ elif index == 'song':
s = items['result'][index]
- if s['CoverArtFilename'] != None:
+ else:
+ s = items['result'][i]
+ if 'CoverArtFilename' not in s:
+ info = self.getSongInfo(s['SongID'])
+ coverart = info['CoverArtFilename']
+ elif s['CoverArtFilename'] != None:
coverart = THUMB_URL+s['CoverArtFilename'].encode('ascii', 'ignore')
else:
coverart = THUMB_URL_DEFAULT
albums = items['result']['albums']
while(i < len(albums)):
s = albums[i]
- if s['CoverArtFilename'] != None:
+ if 'CoverArtFilename' in s and s['CoverArtFilename'] != None:
coverart = THUMB_URL+s['CoverArtFilename'].encode('ascii', 'ignore')
else:
coverart = THUMB_URL_DEFAULT
if 'result' in items:
i = 0
list = []
- playlists = items['result']['playlists']
+ playlists = items['result']
while(i < len(playlists)):
s = playlists[i]
list.append([s['PlaylistID'],\
- s['PlaylistName'].encode('ascii', 'ignore'),\
- s['Username'].encode('ascii', 'ignore')])
+ s['Name'].encode('ascii', 'ignore')])
i = i + 1
return list
else:
#res = groovesharkApi.getSongURLFromSongID('27425375')
#res = groovesharkApi.getAlbumSearchResults('london calling', 3)
#res = groovesharkApi.getArtistSearchResults('the clash', 3)
-res = groovesharkApi.getUserFavoriteSongs()
+#res = groovesharkApi.getUserFavoriteSongs()
+#res = groovesharkApi.getUserPlaylists()
+#res = groovesharkApi.getSongInfo('27425375')
+res = groovesharkApi.getPlaylistSongs(40902662)
pprint.pprint(res)