Exemple #1
0
        public static YandexPlaylist FromJson(JToken jList)
        {
            var playlist = new YandexPlaylist
            {
                Collective = jList.GetBool("collective"),
                Cover      = jList.ContainField("cover") ?
                             YandexCover.FromJson(jList["cover"]) : null,
                Description           = jList.GetString("description"),
                DescriptionFormatted  = jList.GetString("descriptionFormatted"),
                Duration              = jList.GetInt("Duration"),
                GeneratedPlaylistType = jList.GetString("generatedPlaylistType"),
                IdForFrom             = jList.GetString("IdForFrom"),
                Kind       = jList.GetInt("kind"),
                LikesCount = jList.GetInt("likesCount"),
                Modified   = jList.GetString("modified"),
                OgImage    = jList.GetString("ogImage"),
                Owner      = jList.ContainField("owner") ?
                             YandexOwner.FromJson(jList["owner"]) : null,
                Revision   = jList.GetInt("revision"),
                Title      = jList.GetString("title"),
                TrackCount = jList.GetInt("trackCount"),
                Visibility = jList.GetString("visibility"),
                TrackIds   = jList.ContainField("trackIds")
          ? jList["trackIds"].Select(x => int.Parse(x.ToString())).ToList() : null,
                Tracks = jList.ContainField("tracks")
          ? YandexTrack.FromJsonArray(jList["tracks"].ToObject <JArray>())
          : null
            };

            return(playlist);
        }
Exemple #2
0
        public static YandexAlbum FromJson(JToken jAlbum)
        {
            var album = new YandexAlbum
            {
                Artists   = YandexArtist.FromJsonArray(jAlbum["artists"].ToObject <JArray>()),
                Available = jAlbum.GetBool("available"),
                AvailableForPremiumUsers = jAlbum.GetBool("availableForPremiumUsers"),
                CoverUri            = jAlbum.GetString("coverUri"),
                Genre               = jAlbum.GetString("genre"),
                Id                  = jAlbum.GetString("id"),
                OriginalReleaseYear = jAlbum.GetString("originalReleaseYear"),
                Regions             = jAlbum.Contains("regions")
          ? jAlbum["regions"].ToObject <JArray>().Select(x => (string)x).ToList()
          : null,
                StorageDir = jAlbum.GetString("storageDir"),
                Title      = jAlbum.GetString("title"),
                TrackCount = jAlbum.GetInt("trackCount"),
                Year       = jAlbum.GetString("year"),
                Bests      = jAlbum.ContainField("bests")
          ? jAlbum["bests"].ToObject <JArray>().Select(x => x.ToString()).ToList()
          : null,
                Type = jAlbum.GetString("type"),
            };

            if (jAlbum.ContainField("volumes"))
            {
                if (jAlbum["volumes"].ToString() != String.Empty)
                {
                    var fieldVolumes = jAlbum["volumes"].ToObject <JArray>().FirstOrDefault();
                    if (fieldVolumes != null)
                    {
                        var jVolumes = fieldVolumes.ToObject <JArray>();
                        var tracks   = YandexTrack.FromJsonArray(jVolumes);
                        album.Volumes = new List <List <YandexTrack> > {
                            tracks
                        };
                    }
                    else
                    {
                        album.Volumes = null;
                    }
                }
            }
//      album.Volumes = jAlbum.ContainField("volumes")
//        ? new List<List<Track>>
//        {
//          Track.FromJsonArray(jAlbum["volumes"].ToObject<JArray>().First().ToObject<JArray>())
//        }
//        : null;

            return(album);
        }
Exemple #3
0
        public List <YandexTrack> GetListFavorites(string login = null)
        {
            if (login == null)
            {
                login = _login;
            }

            var request = GetRequest(_settings.GetListFavoritesURL(login));
            var tracks  = new List <YandexTrack>();

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var data    = GetDataFromResponse(response);
                var jTracks = (JArray)data["tracks"];

                tracks = YandexTrack.FromJsonArray(jTracks);

                _cookies.Add(response.Cookies);
            }

            return(tracks);
        }
Exemple #4
0
        public List <IYandexSearchable> Search(string searchText, YandexSearchType searchType, int page = 0)
        {
            var listResult = new List <IYandexSearchable>();

            var request = GetRequest(_settings.GetSearchURL(searchText, searchType, page), WebRequestMethods.Http.Get);

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var json      = GetDataFromResponse(response);
                var fieldName = searchType.ToString().ToLower();
                var jArray    = (JArray)json[fieldName]["items"];

                if (searchType == YandexSearchType.Tracks)
                {
                    listResult = YandexTrack.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Artists)
                {
                    listResult = YandexArtist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Albums)
                {
                    listResult = YandexAlbum.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Playlists)
                {
                    listResult = YandexPlaylist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Users)
                {
                    listResult = YandexUser.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
            }

            return(listResult);
        }