Commit graph

4 commits

Author SHA1 Message Date
Andrew Pimenov
b93ac0d04a fix fetch caching tracks under wrong key, causing false stale purge
Кэш ключевался по track.track_id, пересчитанному из albums[0] вернувшегося
Track - а не по исходному id из списка лайков. Для трека, доступного на
нескольких альбомах, "основной" альбом в ответе tracks() может отличаться
от того, под которым трек лайкнут. Из-за этого 138 треков из ~1984
кэшировались под несовпадающим ключом и тут же вычищались как "больше не
лайкнутые" - при том что реально лайкнуты. Теперь кэшируем по исходному
id из likes.tracks_ids, сопоставляя по позиции в батче.
2026-07-06 12:16:14 +03:00
Andrew Pimenov
a8dd8d3bc8 fix ROOT_BUCKET to use verified genre roots instead of guessed slugs
Живой каталог client.genres() показал, что настоящий корень для рока -
"allrock" (title "Рок"), а не "rock", как было угадано изначально. Из-за
этого весь рок (559 из ~1900 треков, почти треть библиотеки) молча падал
в "Разное". Таблица переписана по полному списку из 34 реальных корней
(cache/genre_catalog.json), а не по предположениям об именах слагов.
2026-07-06 12:15:27 +03:00
Andrew Pimenov
f69d961064 fix duplicate track/playlist inserts on network timeout
users_playlists_insert_track и users_playlists_create - операции записи:
таймаут не значит, что запрос не дошёл до сервера. Прошлый фикс слепо
повторял такой вызов при NetworkError, и если сервер уже применил
вставку (а ответ просто потерялся), трек добавлялся в плейлист второй
раз. Теперь при сетевой ошибке сначала перепроверяется фактическое
состояние плейлиста/списка плейлистов, и повтор происходит только если
трек/плейлист там правда ещё отсутствует.
2026-07-06 12:04:18 +03:00
Andrew Pimenov
353be65e3a init: сортировка лайков Яндекс.Музыки по жанру и языку
CLI на yandex-music (device-flow auth, fetch/report/apply), жанр через
реальное дерево client.genres(), язык гибридом (track_supplement + алфавит).
2026-07-06 09:49:36 +03:00