mirror of
https://github.com/Horizontal42/Sort_YM.git
synced 2026-11-11 01:02:02 +03:00
accept lk.-prefixed playlist uuids in --source links
Personal playlist links (e.g. "liked tracks" shared via the web player) use a "lk.<uuid>" playlist_uuid, not a bare uuid - confirmed live via client.playlist(): the prefix is part of the id itself, not something to strip. Found by testing --source against a real link.
This commit is contained in:
parent
ff452b0162
commit
188fcc8b20
2 changed files with 14 additions and 1 deletions
|
|
@ -19,7 +19,10 @@ from . import fetch
|
|||
from .ymclient import chunked, with_retries
|
||||
|
||||
HOST_RE = re.compile(r"^(?:www\.)?music\.yandex\.[a-z]{2,3}$", re.IGNORECASE)
|
||||
UUID_RE = re.compile(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", re.IGNORECASE)
|
||||
# "lk." (личный кабинет) - префикс у ссылок на персональные плейлисты (например, "Мне нравится"),
|
||||
# в отличие от чистого uuid у редакционных плейлистов - подтверждено вживую через client.playlist():
|
||||
# без префикса API отвечает NotFoundError, префикс - часть самого uuid, а не что-то, что надо отрезать.
|
||||
UUID_RE = re.compile(r"^(?:lk\.)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", re.IGNORECASE)
|
||||
|
||||
_LINK_HINT = (
|
||||
"Ожидается ссылка вида https://music.yandex.ru/users/<логин>/playlists/<номер> - "
|
||||
|
|
|
|||
|
|
@ -110,6 +110,16 @@ def test_parse_playlist_url_accepts_uuid_form():
|
|||
assert ref.kind is None
|
||||
|
||||
|
||||
def test_parse_playlist_url_accepts_lk_prefixed_uuid_form():
|
||||
# "lk." (личный кабинет) - реальный префикс у ссылок на персональные плейлисты вроде "Мне
|
||||
# нравится" (подтверждено вживую через client.playlist()); префикс - часть самого uuid для
|
||||
# API, а не что-то, что нужно отрезать при парсинге.
|
||||
ref = source.parse_playlist_url(
|
||||
"https://music.yandex.ru/playlists/lk.dff9b654-af53-4c65-ab4a-d4ed5a0ae72d?utm_source=desktop"
|
||||
)
|
||||
assert ref.uuid == "lk.dff9b654-af53-4c65-ab4a-d4ed5a0ae72d"
|
||||
|
||||
|
||||
REJECTED_URLS = [
|
||||
"",
|
||||
" ",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue