Skip to content

Commit

Permalink
Merge pull request #49 from dipnlik/spotify-intl
Browse files Browse the repository at this point in the history
Identify Spotify international URLs
  • Loading branch information
9dogs authored Jan 15, 2024
2 parents b9ce00a + 7dfded6 commit 60dce36
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
30 changes: 19 additions & 11 deletions tests/unit/test_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,12 @@ async def test_extracts_urls(self, bot: OdesliBot):
'complex-world\n'
'17 https://carbonbasedlifeforms.bandcamp.com/track/6equj5\n'
'18 https://youtu.be/ugYB3VxpivU\n'
'19 https://spotify.link/a9uvoB7YQyb'
'19 https://spotify.link/a9uvoB7YQyb\n'
'20 https://open.spotify.com/intl-pt/track/1g6F8wj3IME7EiJ0L0tmzy'
'?si=e3295c2850eb4a4f'
)
urls = bot.extract_song_urls(text)
assert len(urls) == 19
assert len(urls) == 20
deezer_url = urls[0]
assert deezer_url.platform_key == 'deezer'
assert deezer_url.url == 'https://www.deezer.com/track/568497412'
Expand Down Expand Up @@ -77,44 +79,50 @@ async def test_extracts_urls(self, bot: OdesliBot):
spotify = urls[9]
assert spotify.platform_key == 'spotify'
assert spotify.url == 'https://spotify.link/a9uvoB7YQyb'
youtube_music = urls[10]
spotify = urls[10]
assert spotify.platform_key == 'spotify'
assert spotify.url == (
'https://open.spotify.com/intl-pt/track/1g6F8wj3IME7EiJ0L0tmzy'
'?si=e3295c2850eb4a4f'
)
youtube_music = urls[11]
assert youtube_music.platform_key == 'youtubeMusic'
assert youtube_music.url == (
'https://music.youtube.com/watch?v=eVTXPUF4Oz4'
)
youtube_music_album = urls[11]
youtube_music_album = urls[12]
assert youtube_music_album.platform_key == 'youtubeMusic'
assert youtube_music_album.url == (
'https://music.youtube.com/playlist?list='
'OLAK5uy_l2F5ezYgFM0mQ3tg2-vK900BTgr8zXMW0'
)
youtube = urls[12]
youtube = urls[13]
assert youtube.platform_key == 'youtube'
assert youtube.url == 'https://www.youtube.com/watch?v=eVTXPUF4Oz4'
youtube_album = urls[13]
youtube_album = urls[14]
assert youtube_album.platform_key == 'youtube'
assert youtube_album.url == (
'https://www.youtube.com/playlist?list='
'OLAK5uy_n64ojqXEYWqrvO5GAWU1Ik040wTIzBdbQ'
)
youtube_short = urls[14]
youtube_short = urls[15]
assert youtube_short.platform_key == 'youtube'
assert youtube_short.url == 'https://youtu.be/ugYB3VxpivU'
apple_music = urls[15]
apple_music = urls[16]
assert apple_music.platform_key == 'appleMusic'
assert apple_music.url == (
'https://music.apple.com/se/album/raindrops-feat-j3po/1450701158'
)
tidal = urls[16]
tidal = urls[17]
assert tidal.platform_key == 'tidal'
assert tidal.url == 'https://tidal.com/track/139494756'
bandcamp_album = urls[17]
bandcamp_album = urls[18]
assert bandcamp_album.platform_key == 'bandcamp'
assert bandcamp_album.url == (
'https://gunnarspardel.bandcamp.com/album/simplicity-in-a-'
'complex-world'
)
bandcamp_track = urls[18]
bandcamp_track = urls[19]
assert bandcamp_track.platform_key == 'bandcamp'
assert bandcamp_track.url == (
'https://carbonbasedlifeforms.bandcamp.com/track/6equj5'
Expand Down
3 changes: 2 additions & 1 deletion tg_odesli_bot/platforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ class SpotifyPlatform(PlatformABC):

key = 'spotify'
url_re = (
r'https?://([a-zA-Z\d-]+\.)*((spotify\.com/(album|track)/[^\s.,]*)'
r'https?://([a-zA-Z\d-]+\.)*'
r'((spotify\.com/(?:intl-\w+/)?(album|track)/[^\s.,]*)'
r'|(tospotify\.com/[^\s.,]*)'
r'|(spotify\.link/[^\s]*))'
)
Expand Down

0 comments on commit 60dce36

Please sign in to comment.