Ejemplo n.º 1
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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([])
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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([])
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)