コード例 #1
0
        public async Task <List <Episode> > List(int programId, int count)
        {
            var episodesResult = await _sverigesRadioApiClient.ListEpisodesAsync(programId, pagination : ListPagination.TakeFirst(count));

            return(episodesResult.Episodes);
        }
コード例 #2
0
        private async Task WriteEpisodeInfos(SrStoredEpisodePhases?phase, string?state)
        {
            var allErrorEpisodes = await _storage.GetEpisodesWithStatus(phase?.ToString(), state);

            if (!allErrorEpisodes.Any())
            {
                return;
            }

            var episodeInfos = await _sverigesRadioApiClient.GetEpisodesAsync(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), ListPagination.TakeFirst(allErrorEpisodes.Count));

            var ids = new StringBuilder();

            foreach (var episode in episodeInfos.Episodes.OrderBy(x => x.PublishDateUtc))
            {
                ids.AppendLine($"{episode.Id} - {episode.PublishDateUtc} - {episode.Title}...");
            }

            var idsString = ids.ToString();

            Console.Write(idsString);

            Console.ReadLine();
        }
コード例 #3
0
        public static async Task Main(string[] args)
        {
            Console.WriteLine("Orneholm.SverigesRadio.ConsoleSample");
            Console.WriteLine("########################################################");
            Console.WriteLine();

            var apiClient = SverigesRadioApiClient.CreateClient(new AudioSettings
            {
                OnDemandAudioTemplateId = SverigesRadioApiIds.OnDemandAudioTemplates.Html5_Desktop,
                LiveAudioTemplateId     = SverigesRadioApiIds.LiveAudioTemplates.MP3,

                AudioQuality = AudioQuality.High
            });

            Console.WriteLine();
            Console.WriteLine("List programs:");
            var programsResult = await apiClient.ListProgramsAsync();

            foreach (var program in programsResult.Programs)
            {
                Console.WriteLine($"{program.Name} ({program.Id}): {program.Description}");
            }

            Console.WriteLine();
            Console.WriteLine("Get latest episode for P3 Dokumentär:");
            var episodeResult = await apiClient.GetLatestEpisodeAsync(SverigesRadioApiIds.Programs.P3_Dokumentar);

            Console.WriteLine($"{episodeResult.Episode.Title} ({episodeResult.Episode.Id}): {episodeResult.Episode.Description}");

            Console.WriteLine();
            Console.WriteLine("List podfiles for Så funkar det (last 3):");
            var podfilesResult = await apiClient.ListPodfilesAsync(SverigesRadioApiIds.Programs.Sa_Funkar_Det, ListPagination.TakeFirst(5));

            foreach (var podfile in podfilesResult.Podfiles)
            {
                Console.WriteLine($"{podfile.Title} ({podfile.Id}): {podfile.Url}");
            }

            Console.WriteLine();
            Console.WriteLine("Search episodes:");
            var episodeSearchResult = await apiClient.SearchEpisodesAsync("Microsoft");

            foreach (var episode in episodeSearchResult.Episodes)
            {
                Console.WriteLine($"{episode.Title} ({episode.Id}) - {episode.Description}");
            }

            Console.WriteLine();
            Console.ReadLine();
        }
コード例 #4
0
        private async Task ReRunWith(SrStoredEpisodePhases?phase, string?state, CancellationToken stoppingToken)
        {
            var allErrorEpisodes = await _storage.GetEpisodesWithStatus(phase?.ToString(), state);

            if (!allErrorEpisodes.Any())
            {
                return;
            }

            var episodeInfos = await _sverigesRadioApiClient.GetEpisodesAsync(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), ListPagination.TakeFirst(allErrorEpisodes.Count));

            var ids = new StringBuilder();

            foreach (var episode in episodeInfos.Episodes.OrderBy(x => x.PublishDateUtc))
            {
                await _storage.DeleteEpisodeStatus(episode.Id);

                await _storage.DeleteStoredEpisode(episode.Id);

                _logger.LogInformation($"Deleting {episode.Id} - {episode.PublishDateUtc} - {episode.Title}...");
            }

            await _srWorker.Work(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), true, stoppingToken);
        }