from tests.data.base.albums import album_id, album_name from tests.data.base.artists import artist_id, artist_name, spotify_artist_uri from tests.data.base.core import dt, image_url, apple_image_url from tests.helpers import named_str isrc, track_name, \ track_id, spotify_track_id, apple_track_id, \ track_uri, apple_track_uri, spotify_track_uri = ( named_str(s, delimiter='-') for s in ("ISRC", "track-name", "track-id", "spotify_track-id", "apple_track-id", "track-uri", "track-id", "spotify:track:track-id")) dsp_to_id_func = {"apple": apple_track_id, "spotify": spotify_track_id} dsp_to_uri_func = {"apple": apple_track_uri, "spotify": spotify_track_uri} def spotify_api_track(i): _track_id = track_id(i) _album_id = album_id(i) _artist_id, _artist_name = artist_id(i), artist_name(i) return { "album": { "album_type": "album", "total_tracks": 12, "available_markets": ["AR", "AU"], "external_urls": { "spotify": f"https://open.spotify.com/album/{_album_id}" }, "href": f"https://api.spotify.com/v1/albums/{_album_id}", "id": _album_id, "images": [ { "url": image_url(i, "track", "spotify", 640), "height": 640, "width": 640 }, { "url": image_url(i, "track", "spotify", 300), "height": 300, "width": 300 }, { "url": image_url(i, "track", "spotify", 64), "height": 64, "width": 64 } ], "name": album_name(i), "release_date": dt(days_shift=(-30 * i), iso=True, with_time=False), "release_date_precision": "day", "type": "album", "uri": f"spotify:album:{_album_id}", "artists": [ { "external_urls": { "spotify": f"https://open.spotify.com/artist/{_artist_id}" }, "href": f"https://api.spotify.com/v1/artists/{_artist_id}", "id": _artist_id, "name": _artist_name, "type": "artist", "uri": f"spotify:artist:{_artist_id}" } ] }, "artists": [ { "external_urls": { "spotify": f"https://open.spotify.com/artist/{_artist_id}" }, "href": f"https://api.spotify.com/v1/artists/{_artist_id}", "id": _artist_id, "name": _artist_name, "type": "artist", "uri": spotify_artist_uri(i) } ], "available_markets": ["AR", "AU"], "disc_number": 1, "duration_ms": 366213, "explicit": False, "external_ids": { "isrc": isrc(i) }, "external_urls": { "spotify": f"https://open.spotify.com/track/{_track_id}" }, "href": f"https://api.spotify.com/v1/tracks/{_track_id}", "id": _track_id, "name": track_name(i), "popularity": 69, "preview_url": f"https://p.scdn.co/mp3-preview/8196f1d0cb4c14a5a5bd1ab078c6893b30dab102?cid=b2e1273dc5b74aa8ac2ce522030bdb68-{i}", "track_number": 11, "type": "track", "uri": spotify_track_uri(i), "is_local": False } def apple_api_track(i): _track_id = track_id(i) _album_id = album_id(i) _artist_id, _artist_name = artist_id(i), artist_name(i) return { "id": _track_id, "type": "songs", "href": f"/v1/catalog/us/songs/{_track_id}", "attributes": { "albumName": album_name(i), "genreNames": [ "Pop", "Music" ], "trackNumber": 2, "releaseDate": dt(days_shift=(-30 * i), iso=True, with_time=False), "durationInMillis": 184613, "isrc": isrc(i), "artwork": { "width": 3000, "height": 3000, "url": apple_image_url(i, "track"), "bgColor": "080401", "textColor1": "feffff", "textColor2": "bedaff", "textColor3": "cccccc", "textColor4": "99afcc" }, "composerName": "Chris Brown, KDDO, Tiffany McKie & David Adeleke", "url": f"https://music.apple.com/us/album/under-the-influence/{_track_id}?i={_track_id}", "playParams": { "id": _track_id, "kind": "song" }, "discNumber": 1, "hasCredits": False, "isAppleDigitalMaster": False, "hasLyrics": False, "name": track_name(i), "previews": [ { "url": f"https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview126/v4/f7/94/06/f7940618-7b6a-34c6-725e-7f63536f8319/mzaf_8030302514566926428.plus.aac.p.m4a-{i}" } ], "artistName": _artist_name, "contentRating": "explicit" }, "relationships": { "albums": { "href": f"/v1/catalog/us/songs/{_track_id}/albums", "data": [ { "id": _album_id, "type": "albums", "href": f"/v1/catalog/us/albums/{_album_id}" } ] }, "artists": { "href": f"/v1/catalog/us/songs/{_track_id}/artists", "data": [ { "id": _artist_id, "type": "artists", "href": f"/v1/catalog/us/artists/{_artist_id}", "attributes": { "genreNames": [ "R&B/Soul" ], "name": _artist_name, "artwork": { "width": 1170, "height": 1170, "url": "https://is1-ssl.mzstatic.com/image/thumb/Music122/v4/54/ca/43/54ca4321-8c0b-099e-f552-950a40a2a899/pr_source.png/{w}x{h}bb.jpg", "bgColor": "0b0a08", "textColor1": "f9aa70", "textColor2": "eaa669", "textColor3": "c98a5b", "textColor4": "bd8755" }, "url": f"https://music.apple.com/us/artist/chris-brown/{_artist_id}" }, "relationships": { "albums": { "href": f"/v1/catalog/us/artists/{_artist_id}/albums", "next": f"/v1/catalog/us/artists/{_artist_id}/albums?offset=25", "data": [ { "id": _album_id, "type": "albums", "href": f"/v1/catalog/us/albums/{_album_id}" }, ] } } } ] } } }