artistID = artist[1]
if __debugging__ :
xbmc.log("Found " + artist[0] + "...")
- albums = groovesharkApi.getArtistAlbums(artistID, limit = self.albumsearchlimit)
+ albums = groovesharkApi.getArtistAlbums(artistID, self.albumsearchlimit, True)
if (len(albums) > 0):
self._add_albums_directory(albums, artistID)
else:
# Show selected artist
def artist(self, artistid):
albums = groovesharkApi.getArtistAlbums(artistid, limit = self.albumsearchlimit)
- self._add_albums_directory(albums, artistid)
+ self._add_albums_directory(albums, artistid, True)
# Show selected playlist
def playlist(self, playlistid, playlistname):
xbmcplugin.setPluginFanart(int(sys.argv[1]), self.fanImg)
# Add albums to directory
- def _add_albums_directory(self, albums, artistid=0):
+ def _add_albums_directory(self, albums, artistid=0, isverified=False):
n = len(albums)
itemsExisting = n
if __debugging__ :
while i < n:
album = albums[i]
albumID = album[3]
- if groovesharkApi.getDoesAlbumExist(albumID):
+ if isverified or groovesharkApi.getDoesAlbumExist(albumID):
albumArtistName = album[0]
albumName = album[2]
albumImage = self._get_icon(album[4], 'album-' + str(albumID))
id = int(songid)
duration = -1
durations = []
- path = os.path.join(cacheDir, 'durations.dmp')
+ path = os.path.join(cacheDir, 'duration.dmp')
try:
f = open(path, 'rb')
durations = pickle.load(f)
except:
pass
- # Not in cache but exists
- if duration < 0 and groovesharkApi.getDoesSongExist(songid):
+ # Not in cache
+ if duration < 0:
stream = groovesharkApi.getSubscriberStreamKey(songid)
- duration = self._setDuration(stream['uSecs'])
- song = [id, duration]
- self._setSongDuration(song, durations)
+ if stream != False and stream['url'] != '':
+ duration = self._setDuration(stream['uSecs'])
+ song = [id, duration]
+ self._setSongDuration(song, durations)
return duration
# Create the cache directory if it doesn't exist.
if not os.path.exists(cacheDir):
os.makedirs(cacheDir)
- path = os.path.join(cacheDir, 'durations.dmp')
+ path = os.path.join(cacheDir, 'duration.dmp')
f = open(path, 'wb')
pickle.dump(durations, f, protocol=pickle.HIGHEST_PROTOCOL)
f.close()
<setting id="songsearchlimit" type="labelenum" label="30002" default="20" values="5|10|15|20|25|30|40|50|60|70|80|90|100" />
<setting id="albumsearchlimit" type="labelenum" label="30003" default="10" values="5|10|15|20|25|30|40|50|60|70|80|90|100" />
<setting id="artistsearchlimit" type="labelenum" label="30004" default="10" values="5|10|15|20|25|30|40|50|60|70|80|90|100" />
- <setting id="songspagelimit" type="labelenum" label="30005" default="100" values="10|20|30|40|50|60|70|80|90|100|200|500" />
+ <setting id="songspagelimit" type="labelenum" label="30005" default="10" values="10|20|30|40|50|60|70|80|90|100|200|500" />
</category>
<category label="Other">
<setting id="debug" label="Debug" type="bool" default="false" />