예제 #1
0
파일: YandexTrack.cs 프로젝트: cutpix/Lofi
        public static YandexTrack FromJson(JToken jTrack)
        {
            try
            {
                var track = new YandexTrack
                {
                    Id        = jTrack.GetString("id"),
                    RealId    = jTrack.GetString("realId"),
                    Title     = jTrack.GetString("title"),
                    Major     = YandexMajor.FromJson(jTrack.Contains("major")),
                    Available = jTrack.GetBool("available"),
                    AvailableForPremiumUsers = jTrack.GetBool("availableForPremiumUsers"),
                    Albums     = jTrack.ContainField("albums") ? YandexAlbum.FromJsonArray(jTrack["albums"].ToObject <JArray>()) : null,
                    DurationMS = jTrack["durationMs"].ToObject <int>(),
                    StorageDir = jTrack.GetString("storageDir"),
                    FileSize   = jTrack.GetInt("fileSize"),
                    Artists    = YandexArtist.FromJsonArray(jTrack["artists"].ToObject <JArray>()),
                    OgImage    = jTrack.GetString("ogImage")
                };
                return(track);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(null);
        }
예제 #2
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);
        }