Esempio n. 1
0
def _browse_playlists(web_client, variant):
    if not web_client.logged_in:
        return []

    if variant == "featured":
        items = flatten([
            page.get("playlists", {}).get("items", [])
            for page in web_client.get_all(
                "browse/featured-playlists",
                params={"limit": 50},
            ) if page
        ])
        return list(translator.to_playlist_refs(items))
    else:
        return []
Esempio n. 2
0
def _browse_toplist_user(web_client, variant):
    if not web_client.logged_in:
        return []

    if variant in ("tracks", "artists"):
        items = flatten([
            page.get("items", []) for page in web_client.get_all(
                f"me/top/{variant}",
                params={"limit": 50},
            ) if page
        ])
        if variant == "tracks":
            return list(
                translator.web_to_track_refs(items, check_playable=False))
        else:
            return list(translator.web_to_artist_refs(items))
    else:
        return []
Esempio n. 3
0
def _browse_your_music(web_client, variant):
    if not web_client.logged_in:
        return []

    if variant in ("tracks", "albums"):
        items = flatten([
            page.get("items", []) for page in web_client.get_all(
                f"me/{variant}",
                params={
                    "market": "from_token",
                    "limit": 50
                },
            ) if page
        ])
        if variant == "tracks":
            return list(translator.web_to_track_refs(items))
        else:
            return list(translator.web_to_album_refs(items))
    else:
        return []
Esempio n. 4
0
def _browse_your_music(web_client, variant):
    if not web_client.logged_in:
        return []

    if variant in ("tracks", "albums"):
        items = flatten([
            page.get("items", []) for page in web_client.get_all(
                f"me/{variant}",
                params={
                    "market": "from_token",
                    "limit": 50
                },
            ) if page
        ])
        if variant == "tracks":
            # TODO: without check_playable=False this will hide unplayable
            # tracks; this will bite us when implementing library editing.
            return list(translator.web_to_track_refs(items))
        else:
            return list(translator.web_to_album_refs(items))
    else:
        return []