コード例 #1
0
        public GetRadioStationAnnotationRequest(Session session, StationSeed seed) : base(session)
        {
            if (string.IsNullOrWhiteSpace(seed.CuratedStationId))
            {
                throw new ArgumentException("Seed is not a station or does not include the " +
                                            nameof(seed.CuratedStationId) + "value!");
            }

            IncludeAlbumQuilt = true;
            Seed = seed;

            NumberOfFeaturedArtists = 25;
            NumberOfSimilarStations = 25;
        }
コード例 #2
0
ファイル: Test.xaml.cs プロジェクト: Banane9/Google.Music
        public StationSeed GetFirstValidStationSeed(StationSeed seed)
        {
            if (!string.IsNullOrWhiteSpace(seed.CuratedStationId))
            {
                return(seed);
            }
            if (seed.Seeds == null)
            {
                return(null);
            }

            foreach (var stationSeed in seed.Seeds)
            {
                var value = GetFirstValidStationSeed(stationSeed);
                if (value != null)
                {
                    return(value);
                }
            }
            return(null);
        }
コード例 #3
0
ファイル: MobileClient.cs プロジェクト: lorddev/Google.Music
        /// <summary>
        /// Get information about the <see cref="StationSeed"/>
        /// </summary>
        /// <param name="seed">A <see cref="StationSeed"/> that MUST contain CuratedStationId.</param>
        /// <returns>
        /// An <see cref="GetRadioStationAnnotationResponse"/> of data associated to the <see cref="StationSeed"/>
        /// This will include information such as:
        ///     - Art
        ///     - Title
        ///     - Related Groups
        ///         - Stations
        ///         - Albums
        ///         - Artists
        /// </returns>
        public async Task <GetRadioStationAnnotationResponse> GetRadioStationAnnotationAsync(StationSeed seed)
        {
            if (!CheckSession())
            {
                return(null);
            }
            if (seed.CuratedStationId == null)
            {
                return(null);
            }

            var request = MakeRequest <GetRadioStationAnnotation>();
            var data    = await request.GetAsync(new GetRadioStationAnnotationRequest(Session, seed));

            return(data);
        }
コード例 #4
0
ファイル: Test.xaml.cs プロジェクト: Banane9/Google.Music
        private async void LoadTracks()
        {
            PlaybackManager.OnPlaybackStateChange += PlaybackManager_OnPlaybackStateChange;
            var         request = await new ListListenNowSituations().GetAsync(new ListListenNowSituationsRequest(SessionManager.MobileSession));
            StationSeed seed    = null;

            foreach (var source in request.Situations.Where(x => x.Stations != null))
            {
                if (source.Stations == null)
                {
                    continue;
                }

                foreach (var station in source.Stations)
                {
                    seed = GetFirstValidStationSeed(station.Seed);
                    if (seed != null)
                    {
                        break;
                    }
                }
            }
            if (seed == null)
            {
                return;
            }

            var annotaion = await new GetRadioStationAnnotation().GetAsync(new GetRadioStationAnnotationRequest(SessionManager.MobileSession, seed));

            var tracks =
                await new EditRadioStation().GetAsync(new EditRadioStationRequest(SessionManager.MobileSession,
                                                                                  new EditRadioStationRequestMutation
            {
                CreateOrGet = new EditRadioStationRequestCreateOrGetMutation
                {
                    ClientId              = SessionManager.MobileSession.AndroidId,
                    ImageType             = 1,
                    InLibary              = false,
                    LastModifiedTimestamp = "-1",
                    Name            = "Test Data",
                    RecentTimestamp = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds.ToString("#"),
                    Seed            = seed,
                    Deleted         = false,
                },
                IncludeFeed     = true,
                NumberOfEntries = 50,
                Parameters      = new EditRadioStationRequestParameters
                {
                    ContentFilter = 1
                }
            }));

            foreach (var mutation in tracks.MutateReponse)
            {
                if (mutation.Tracks != null)
                {
                    foreach (var track in mutation.Tracks)
                    {
                        TrackManager.Queue.Enqueue(track);
                    }
                }
                else if (mutation.Station?.Tracks != null)
                {
                    foreach (var track in mutation.Station.Tracks)
                    {
                        TrackManager.Queue.Enqueue(track);
                    }
                }
            }
            dataGrid.IsReadOnly          = true;
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource         = TrackManager.Queue;
        }