Example #1
0
        public void ChooseFeed(string targetPath, bool getOnlyUrl)
        {
            var feeds = _urlFetcher.GetFeeds(_startDate, _endDate);

            foreach (var feed in feeds)
            {
                Console.WriteLine($"{feed.Id.ToString().PadLeft(2)}: {feed.Date} {feed.Away}@{feed.Home} {feed.Type} ({feed.Name})");
            }

            if (!feeds.Any())
            {
                _messenger.WriteLine("No feeds were found.");
                return;
            }

            Console.Write("\nChoose feed (q to quit): ");
            var input = Console.ReadLine();

            if (input.Equals("q", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var chosenFeed = feeds.FirstOrDefault(f => f.Id == int.Parse(input));

            string streamUrl = null;

            try
            {
                streamUrl = _urlFetcher.GetStreamUrl(chosenFeed);
            }
            catch (Exception e)
            {
                _messenger.WriteLine($"Problem when getting stream URL: {e.Message}");
                return;
            }

            if (getOnlyUrl)
            {
                Console.WriteLine(streamUrl);
                return;
            }

            _messenger.WriteLine($"\nDownloading feed: {chosenFeed.Date} {chosenFeed.Away}@{chosenFeed.Home} ({chosenFeed.Type},{chosenFeed.Name})");

            Download(streamUrl, chosenFeed, targetPath);
        }