From 6d37cafde9361f0440dad54d421817c5b4de4004 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Sun, 26 Apr 2015 23:34:55 -0400 Subject: [PATCH] Menu item to show popular songs for artist from artist albums view Bump MODE_SONG to 150, increase additional modes to compensate. --- default.py | 52 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/default.py b/default.py index 796d1da..11e53a7 100644 --- a/default.py +++ b/default.py @@ -26,6 +26,7 @@ __version__ = __addon__.getAddonInfo('version') __language__ = __addon__.getLocalizedString __debugging__ = __addon__.getSetting('debug') +# Directory listings must be < MODE_SONG MODE_SEARCH_SONGS = 1 MODE_SEARCH_ALBUMS = 2 MODE_SEARCH_ARTISTS = 3 @@ -40,14 +41,16 @@ MODE_ARTIST = 11 MODE_PLAYLIST = 12 MODE_SONG_PAGE = 13 MODE_SIMILAR_ARTISTS = 14 -MODE_SONG = 15 -MODE_FAVORITE = 16 -MODE_UNFAVORITE = 17 -MODE_MAKE_PLAYLIST = 18 -MODE_REMOVE_PLAYLIST = 19 -MODE_RENAME_PLAYLIST = 20 -MODE_REMOVE_PLAYLIST_SONG = 21 -MODE_ADD_PLAYLIST_SONG = 22 +MODE_ARTIST_POPULAR_FROM_ALBUMS = 15 +MODE_SONG = 150 + +MODE_FAVORITE = 160 +MODE_UNFAVORITE = 170 +MODE_MAKE_PLAYLIST = 180 +MODE_REMOVE_PLAYLIST = 190 +MODE_RENAME_PLAYLIST = 200 +MODE_REMOVE_PLAYLIST_SONG = 210 +MODE_ADD_PLAYLIST_SONG = 220 ACTION_MOVE_LEFT = 1 ACTION_MOVE_UP = 3 @@ -362,6 +365,7 @@ class Grooveshark: xbmc.log("Found " + artist[0] + "...") albums = groovesharkApi.getArtistAlbums(artistID, self.albumsearchlimit) if (len(albums) > 0): + self._add_dir(__language__(30016), '', MODE_ARTIST_POPULAR_FROM_ALBUMS, self.popularSongsArtistImg, artistID) self._add_albums_directory(albums, artistID) else: dialog = xbmcgui.Dialog() @@ -447,6 +451,7 @@ class Grooveshark: # Show selected artist def artist(self, artistid): albums = groovesharkApi.getArtistAlbums(artistid, limit = self.albumsearchlimit) + self._add_dir(__language__(30016), '', MODE_ARTIST_POPULAR_FROM_ALBUMS, self.popularSongsArtistImg, artistid) self._add_albums_directory(albums, artistid, True) # Show selected playlist @@ -459,10 +464,10 @@ class Grooveshark: dialog = xbmcgui.Dialog() dialog.ok(__language__(30008), __language__(30034), __language__(30040)) - # Show popular songs of the artist - def artistPopularSongs(self): + # Search for artist show popular songs of the artist + def searchArtistPopularSongs(self): query = self._get_keyboard(default="", heading=__language__(30041)) - if (query != ''): + if (query != ''): artists = groovesharkApi.getArtistSearchResults(query, limit = self.artistsearchlimit) if (len(artists) > 0): # check for exact artist name match, sometimes a more @@ -473,20 +478,24 @@ class Grooveshark: artistID = artist[1] if __debugging__ : xbmc.log("Found " + artist[0] + "...") - songs = groovesharkApi.getArtistPopularSongs(artistID, limit = self.songsearchlimit) - if (len(songs) > 0): - self._add_songs_directory(songs, trackLabelFormat=NAME_ALBUM_ARTIST_LABEL) - else: - dialog = xbmcgui.Dialog() - dialog.ok(__language__(30008), __language__(30042)) - self.categories() + self.artistPopularSongs (artistID) else: dialog = xbmcgui.Dialog() dialog.ok(__language__(30008), __language__(30043)) self.categories() else: self.categories() - + + # Show popular songs of the artist + def artistPopularSongs(self, artistID): + songs = groovesharkApi.getArtistPopularSongs(artistID, limit = self.songsearchlimit) + if (len(songs) > 0): + self._add_songs_directory(songs, trackLabelFormat=NAME_ALBUM_ARTIST_LABEL) + else: + dialog = xbmcgui.Dialog() + dialog.ok(__language__(30008), __language__(30042)) + self.categories() + # Play a song def playSong(self, item): global playTimer @@ -1067,7 +1076,7 @@ elif mode==MODE_POPULAR_SONGS: grooveshark.popularSongs() elif mode==MODE_ARTIST_POPULAR: - grooveshark.artistPopularSongs() + grooveshark.searchArtistPopularSongs() elif mode==MODE_FAVORITES: grooveshark.favorites() @@ -1129,6 +1138,9 @@ elif mode==MODE_REMOVE_PLAYLIST_SONG: elif mode==MODE_ADD_PLAYLIST_SONG: grooveshark.addPlaylistSong(itemId) + +elif mode==MODE_ARTIST_POPULAR_FROM_ALBUMS: + grooveshark.artistPopularSongs(itemId) if mode < MODE_SONG: xbmcplugin.endOfDirectory(int(sys.argv[1])) -- 2.20.1