Неожиданные результаты получения содержимого списка воспроизведения spotify - PullRequest
1 голос
/ 27 марта 2012

Мне нужно поддерживать базу данных в актуальном состоянии с содержанием списка воспроизведения.

Я использую C # Wrapper для API libspotify - http://libspotify -sharp.hallerud.se /

В настоящее время мой рабочий процесс выглядит следующим образом

Войдите в систему, дождитесь загрузки контейнера списка воспроизведения, когда загрузите прослушивание событий загрузки списка воспроизведения, когда интересующий меня список воспроизведения будет загружен, дождитесь загрузки всех дорожек в списке воспроизведения, затем запишите содержимое в базу данных.

Я полностью очищаю каталог кеша при каждом запуске программы.

Я считаю, что это работает нормально и, как и ожидалось, большую часть времени, а затем при удалении некоторых дорожек в обычном клиенте spotify, кажется, что дорожки по-прежнему возвращаются через API, даже если их больше нет ( очищаю директорию кеша, чтобы они были?).

Кто-нибудь знает, что может вызвать это?

ОБНОВЛЕНИЕ

Что я обнаружил, так это то, что API, кажется, возвращает различную информацию к тому, что доступно для просмотра на клиенте. Я запустил консольное приложение с разных компьютеров, и удаленные треки все еще возвращаются. Обычный клиент spotify не показывает их, также протестирован на нескольких компьютерах. В моем приложении я вхожу в систему, ожидаю полной загрузки плейлистов и затем завершаю работу, это приложение выполняет запланированное задание.

ОБНОВЛЕНИЕ 2

Я сейчас жду до

(playlist.IsLoaded == true && 
playlist.CurrentTracks.All(x => x.IsLoaded && x.Artists.Count() > 0))

с использованием

session.OnMetaDataUpdated += HandleOnMetaUpdated;

и

playlist.OnMetadataUpdated += PlaylistMetaUpdated;

1 Ответ

2 голосов
/ 27 марта 2012

Если бэкэнд плейлиста работает медленно, то изменения, внесенные в клиент, могут занять некоторое время в бэкэнде Spotify.Только после того, как они окажутся в бэкэнде, изменения дойдут до других клиентов.

...