示例#1
0
        public static YPlaylistResponse FromJson(JToken json)
        {
            var playlist = new YPlaylistResponse
            {
                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>(),
                Visibility            = json.SelectToken("visibility")?.ToObject <string>(),
                Cover                 = YPlaylistCover.FromJson(json.SelectToken("cover")),
                Owner                 = YOwner.FromJson(json["owner"]),
                Tracks                = json.SelectToken("tracks")?.Select(x => YTrack.FromJson(x)).ToList(),
                Modified              = json.SelectToken("modified")?.ToObject <string>(),
                TrackIds              = json.SelectToken("trackIds")?.Select(x => x.ToObject <int>()).ToList(),
                OgImage               = json.SelectToken("ogImage")?.ToObject <string>(),
                Tags                  = json.SelectToken("tags")?.Select(x => x.ToObject <string>()).ToList(),
                LikesCount            = json.SelectToken("likesCount")?.ToObject <int>(),
                Duration              = json.SelectToken("duration")?.ToObject <long>(),
                Collective            = json.SelectToken("collective")?.ToObject <bool>(),
                Prerolls              = json.SelectToken("prerolls")?.Select(x => YPlaylistPrerolls.FromJson(x)).ToList(),
                PlayCounter           = YPlaylistPlayCounter.FromJson(json.SelectToken("playCounter")),
                IdForFrom             = json.SelectToken("idForFrom")?.ToObject <string>(),
                GeneratedPlaylistType = json.SelectToken("generatedPlaylistType")?.ToObject <string>(),
                UrlPart               = json.SelectToken("urlPart")?.ToObject <string>(),
                MadeFor               = YPlaylistMadeFor.FromJson(json.SelectToken("madeFor")),
                OgTitle               = json.SelectToken("ogTitle")?.ToObject <string>(),
                DoNotIndex            = json.SelectToken("doNotIndex")?.ToObject <bool>()
            };

            return(playlist);
        }
示例#2
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
            });
        }
示例#3
0
        internal static YPlaylistMadeFor FromJson(JToken json)
        {
            if (json == null)
            {
                return(null);
            }

            return(new YPlaylistMadeFor
            {
                UserInfo = YOwner.FromJson(json.SelectToken("userInfo")),
                MadeFor = YMadeForCaseForms.FromJson(json.SelectToken("caseForms"))
            });
        }
 internal static YPlaylistFavoritesResponse FromJson(JToken json)
 {
     return(new YPlaylistFavoritesResponse
     {
         Success = json["success"].ToObject <bool>(),
         CountsTracks = YCountsTracks.FromJson(json["countsTracks"]),
         Tracks = json["tracks"].Select(YTrack.FromJson).ToList(),
         ContestTracksIds = json["contestTracksIds"].Select(x => YTrackAlbumPair.FromJson(x)).ToList(),
         TrackIds = json["trackIds"].Select(x => x.ToObject <string>()).ToList(),
         Verified = json["verified"].ToObject <bool>(),
         Owner = YOwner.FromJson(json["owner"]),
         Visibility = json["visibility"].ToObject <bool>(),
         Profiles = json["profiles"].Select(x => YProfile.FromJson(x)).ToList(),
         Counts = YLikedCounts.FromJson(json["counts"]),
         HasTracks = json["hasTracks"].ToObject <bool>(),
         IsRadioAvailable = json["isRadioAvailable"].ToObject <bool>()
     });
 }
        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>()
            });
        }