예제 #1
0
        public static YPlaylistChangeResponse FromJson(JToken json)
        {
            var x = json["playlist"];

            var playlistOwner = new YOwner
            {
                Uid      = x["owner"]["uid"].ToObject <string>(),
                Login    = x["owner"]["login"].ToObject <string>(),
                Name     = x["owner"]["name"].ToObject <string>(),
                Sex      = x["owner"]["sex"]?.ToObject <string>(),
                Verified = x["owner"]["verified"]?.ToObject <bool>()
            };

            var tracks = x.SelectToken("tracks")?.Select(f =>
                                                         new YLibraryPlaylistResponse.YandexLibraryPlaylist.YandexLibraryPlaylistTrack
            {
                Id        = f["id"]?.ToObject <long?>(),
                Timestamp = f["timestamp"]?.ToObject <string>(),
                AlbumId   = f["albumId"]?.ToObject <long?>()
            }).ToList();

            var libraryCover = YCover.FromJson(x.SelectToken("cover"));

            var playlist = new YLibraryPlaylistResponse.YandexLibraryPlaylist
            {
                Owner      = playlistOwner,
                Available  = x["available"]?.ToObject <bool>(),
                Uid        = x["uid"]?.ToObject <long>(),
                Kind       = x["kind"]?.ToObject <long>(),
                Title      = x["title"]?.ToObject <string>(),
                Revision   = x["revision"]?.ToObject <long>(),
                Snapshot   = x["snapshot"]?.ToObject <long>(),
                TrackCount = x["trackCount"]?.ToObject <long>(),
                Visibility = x["visibility"]?.ToObject <string>(),
                Collective = x["collective"]?.ToObject <bool>(),
                Created    = x["created"]?.ToObject <string>(),
                Modified   = x["modified"]?.ToObject <string>(),
                IsBanner   = x["isBanner"]?.ToObject <bool>(),
                IsPremiere = x["isPremiere"]?.ToObject <bool>(),
                DurationMs = x["durationMs"]?.ToObject <long>(),
                Cover      = libraryCover,
                OgImage    = x["ogImage"]?.ToObject <string>(),
                Tracks     = tracks,
                Tags       = x["tags"]?.ToString(),
                Prerolls   = x["prerolls"]?.ToString(),
            };

            return(new YPlaylistChangeResponse
            {
                Success = json["success"].ToObject <bool>(),
                Playlist = playlist
            });
        }
        public static YArtistResponse FromJson(JToken jArtist)
        {
            var artist = new YArtistResponse
            {
                Id       = jArtist.GetString("id"),
                Name     = jArtist.GetString("name"),
                Various  = jArtist.GetBool("various"),
                Composer = jArtist.GetBool("composer"),
                Cover    = jArtist.ContainField("cover") ? YCover.FromJson(jArtist["cover"]) : null,
                Genres   = new string[] { }
            };

            return(artist);
        }
예제 #3
0
        internal static YSearchArtist FromJson(JToken json)
        {
            if (json == null)
            {
                return(null);
            }

            return(new YSearchArtist
            {
                Id = json.SelectToken("id")?.ToObject <string>(),
                Name = json.SelectToken("name")?.ToObject <string>(),
                Cover = YCover.FromJson(json.SelectToken("cover")),
                Composer = json.SelectToken("composer")?.ToObject <bool>(),
                Various = json.SelectToken("various")?.ToObject <bool>(),
                Decomposed = json.SelectToken("decomposed")?.Select(x => x.ToObject <string>()).ToList()
            });
        }
        internal static YSearchArtistModel FromJson(JToken json)
        {
            if (json == null)
            {
                return(null);
            }

            return(new YSearchArtistModel
            {
                Id = json.SelectToken("id")?.ToObject <string>(),
                Name = json.SelectToken("name")?.ToObject <string>(),
                Cover = YCover.FromJson(json.SelectToken("cover")),
                Composer = json.SelectToken("composer")?.ToObject <bool>(),
                Various = json.SelectToken("various")?.ToObject <bool>(),
                Counts = YSearchArtistCounter.FromJson(json.SelectToken("counts")),
                Genres = json.SelectToken("genres")?.Select(x => x.ToObject <string>()).ToList(),
                TicketsAvailable = json.SelectToken("ticketsAvailable")?.ToObject <bool>(),
                PopularTracks = json.SelectToken("popularTracks")?.Select(x => YSearchTrackModel.FromJson(x)).ToList(),
                Regions = json.SelectToken("regions")?.Select(x => x.ToObject <string>()).ToList()
            });
        }
        internal static YSearchPlaylistModel FromJson(JToken json)
        {
            if (json == null)
            {
                return(null);
            }

            return(new YSearchPlaylistModel
            {
                Revision = json.SelectToken("revision")?.ToObject <int?>(),
                Kind = json.SelectToken("kind")?.ToObject <string>(),
                Title = json.SelectToken("title")?.ToObject <string>(),
                Description = json.SelectToken("description")?.ToObject <string>(),
                DescriptionFormatted = json.SelectToken("descriptionFormatted")?.ToObject <string>(),
                TrackCount = json.SelectToken("trackCount")?.ToObject <int>(),
                Cover = YCover.FromJson(json.SelectToken("cover")),
                Owner = YOwner.FromJson(json["owner"]),
                Tags = json.SelectToken("tags")?.Select(x => x.ToObject <string>()).ToList(),
                LikesCount = json.SelectToken("likesCount")?.ToObject <long>(),
            });
        }
        public static YLibraryPlaylistResponse FromJson(JToken json)
        {
            var playlists = new List <YLibraryPlaylistResponse.YandexLibraryPlaylist>();

            foreach (var x in json["playlists"])
            {
                var playlistOwner = new YOwner
                {
                    Uid      = x["owner"]["uid"].ToObject <string>(),
                    Login    = x["owner"]["login"].ToObject <string>(),
                    Name     = x["owner"]["name"].ToObject <string>(),
                    Sex      = x["owner"]["sex"]?.ToObject <string>(),
                    Verified = x["owner"]["verified"]?.ToObject <bool>()
                };

                var tracks = x.SelectToken("tracks")?.Select(f =>
                                                             new YandexLibraryPlaylist.YandexLibraryPlaylistTrack
                {
                    Id        = f["id"]?.ToObject <long?>(),
                    Timestamp = f["timestamp"]?.ToObject <string>(),
                    AlbumId   = f["albumId"]?.ToObject <long?>()
                }).ToList();

                var libraryCover = YCover.FromJson(x.SelectToken("cover"));

                var playlist = new YandexLibraryPlaylist
                {
                    Owner      = playlistOwner,
                    Available  = x["available"]?.ToObject <bool>(),
                    Uid        = x["uid"]?.ToObject <long>(),
                    Kind       = x["kind"]?.ToObject <long>(),
                    Title      = x["title"]?.ToObject <string>(),
                    Revision   = x["revision"]?.ToObject <long>(),
                    Snapshot   = x["snapshot"]?.ToObject <long>(),
                    TrackCount = x["trackCount"]?.ToObject <long>(),
                    Visibility = x["visibility"]?.ToObject <string>(),
                    Collective = x["collective"]?.ToObject <bool>(),
                    Created    = x["created"]?.ToObject <string>(),
                    Modified   = x["modified"]?.ToObject <string>(),
                    IsBanner   = x["isBanner"]?.ToObject <bool>(),
                    IsPremiere = x["isPremiere"]?.ToObject <bool>(),
                    DurationMs = x["durationMs"]?.ToObject <long>(),
                    Cover      = libraryCover,
                    OgImage    = x["ogImage"]?.ToObject <string>(),
                    Tracks     = tracks,
                    Tags       = x["tags"]?.ToString(),
                    Prerolls   = x["prerolls"]?.ToString(),
                };
                playlists.Add(playlist);
            }

            var libraryOwner = new YOwner
            {
                Uid      = json["owner"]["uid"].ToObject <string>(),
                Login    = json["owner"]["login"].ToObject <string>(),
                Name     = json["owner"]["name"].ToObject <string>(),
                Sex      = string.Empty,
                Verified = null
            };

            var profiles = json["profiles"].Select(x => new YProfile
            {
                Provider  = x["provider"].ToObject <string>(),
                Addresses = x["addresses"].Select(f => f.ToObject <string>()).ToList()
            }).ToList();

            var counts = new YLikedCounts
            {
                LikedArtists = json["counts"]["likedArtists"].ToObject <long>(),
                LikedAlbums  = json["counts"]["likedAlbums"].ToObject <long>(),
            };

            return(new YLibraryPlaylistResponse
            {
                Success = json["success"].ToObject <bool>(),
                BookmarksPlaylistsIds = json["bookmarksPlaylistsIds"].ToString(),
                Bookmarks = json["bookmarks"].ToString(),
                PlaylistIds = json["playlistIds"].Select(x => x.ToObject <long>()).ToList(),
                Playlists = playlists,
                Verified = json["verified"].ToObject <bool>(),
                Owner = libraryOwner,
                Visibility = json["visibility"].ToObject <bool>(),
                Profiles = profiles,
                Counts = counts,
                HasTracks = json["hasTracks"].ToObject <bool>(),
                IsRadioAvailable = json["isRadioAvailable"].ToObject <bool>()
            });
        }