def queue_track(track_id, track_title='', play_next=False): track = _get_track_details(track_id) path = None item = None if track: listitem = listing.build_song_listitems([track])[0] path = listitem[0] item = listitem[1] else: item = xbmcgui.ListItem(track_title) item.setArt({'thumb': thumbs.IMG_ALBUM, 'poster': thumbs.IMG_ALBUM}) path = utils.build_url(url=URL, paths=['play', 'track', track_id], queries={'track_title': track_title}, r_path=True, r_query=True) playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC) position = len(playlist) + 1 if play_next: position = playlist.getposition() + 1 playlist.add(URL=path, listitem=item, index=position)
def my_library_playlist(playlist_id): my_library = False my_library_playlist = False items = [] if playlist_id == 'thumbsup': items = GMUSIC.get_promoted_songs() elif playlist_id == 'lastadded': items = GMUSIC.get_user_lastadded() my_library = True else: playlist = GMUSIC.get_user_playlist(playlist_id) if playlist and 'tracks' in playlist: items = playlist['tracks'] my_library_playlist = True items = listing.build_song_listitems( tracks=items, my_library=my_library, my_library_playlist=my_library_playlist) listing.list_songs(items)
def play_track(track_id, store_id=None, track_title='', station_id=None): track = _get_track_details(track_id, store_id) item = None if track: item = listing.build_song_listitems([track])[0][1] else: item = xbmcgui.ListItem(track_title) item.setArt({'thumb': thumbs.IMG_ALBUM, 'poster': thumbs.IMG_ALBUM}) item.setPath( GMUSIC.get_stream_url(song_id=track_id, quality=ADDON.getSetting('stream_quality'))) xbmcplugin.setResolvedUrl(ADDON_HANDLE, True, item) GMUSIC.increment_song_playcount(track_id) # If the current track is from a station and within the last five (5) # playlist tracks, we get a new set of tracks for this station and # add it to the playlist. if station_id: playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC) if playlist.getposition() >= (len(playlist) - 5): queue_station(station_id)
def station(station_id=None, station_name=None, artist_id=None, album_id=None, track_id=None, genre_id=None, curated_station_id=None, playlist_token=None): if not station_id: station_id = GMUSIC.create_station( name=station_name, artist_id=artist_id, album_id=album_id, track_id=track_id, genre_id=genre_id, curated_station_id=curated_station_id, playlist_token=playlist_token) if not station_id: utils.notify(utils.translate(30050), utils.translate(30051)) return tracks = GMUSIC.get_station_tracks(station_id=station_id, num_tracks=25) items = listing.build_song_listitems(tracks=tracks, station_id=station_id) listing.list_songs(items)
def top_charts_songs(): top_charts = GMUSIC.get_top_chart() if top_charts and 'tracks' in top_charts: items = listing.build_song_listitems(top_charts['tracks']) listing.list_songs(items) else: listing.list_items([])
def search_songs(query): if query: result = GMUSIC.search(query) else: result = GMUSIC.search(cached=True) if result: items = listing.build_song_listitems(result['song_hits']) listing.list_songs(items)
def album(album_id): album_info = GMUSIC.get_album_info(album_id=album_id) if album_info and 'tracks' in album_info: items = listing.build_song_listitems(album_info['tracks']) listing.list_songs(items) else: listing.list_items([])
def listen_now_shared_playlist(playlist_token): playlist_content = GMUSIC.get_shared_playlist_contents( share_token=playlist_token) tracks = [] for item in playlist_content: tracks.append(item['track']) items = listing.build_song_listitems(tracks) listing.list_songs(items)
def browse_stations_station(station_name, curated_station_id): station_id = GMUSIC.create_station( name=station_name, curated_station_id=curated_station_id) if not station_id: utils.notify(utils.translate(30050), utils.translate(30051)) return items = listing.build_song_listitems( GMUSIC.get_station_tracks(station_id=station_id, num_tracks=25)) listing.list_songs(items)
def artist_top_tracks(artist_id): artist = GMUSIC.get_artist_info(artist_id=artist_id, include_albums=False, max_top_tracks=100, max_rel_artist=0) if artist and 'topTracks' in artist: items = listing.build_song_listitems(artist['topTracks']) listing.list_songs(items) else: listing.list_items([])
def my_library_songs(): items = listing.build_song_listitems(tracks=GMUSIC.get_my_library_songs(), my_library=True) listing.list_songs(items)
def my_library_album(album_id): songs = GMUSIC.get_user_album_songs(album_id=album_id) items = listing.build_song_listitems(songs, my_library=True) listing.list_songs(items)