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 []
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 []
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 []
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 []