Exemplo n.º 1
0
    def test_returns_bare_albums(self, web_album_mock):
        web_albums = [web_album_mock] * 3
        refs = list(translator.web_to_album_refs(web_albums))

        assert refs == [refs[0], refs[0], refs[0]]

        assert refs[0].type == models.Ref.ALBUM
        assert refs[0].uri == "spotify:album:def"
        assert refs[0].name == "DEF 456"
Exemplo n.º 2
0
    def test_bad_albums_filtered(self, web_album_mock, web_artist_mock):
        refs = list(
            translator.web_to_album_refs([{}, web_album_mock, web_artist_mock])
        )

        assert len(refs) == 1

        assert refs[0].type == models.Ref.ALBUM
        assert refs[0].uri == "spotify:album:def"
Exemplo n.º 3
0
def _browse_your_music(web_client, variant):
    if not web_client.logged_in:
        return []

    if variant in ("tracks", "albums"):
        items = web_client.get_one(
            f"me/{variant}",
            params={
                "market": "from_token"
            },
        ).get("items", [])
        if variant == "tracks":
            return list(translator.web_to_track_refs(items))
        else:
            return list(translator.web_to_album_refs(items))
    else:
        return []
Exemplo 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":
            return list(translator.web_to_track_refs(items))
        else:
            return list(translator.web_to_album_refs(items))
    else:
        return []
Exemplo n.º 5
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 []