private static AlexaResponse GetNextEpisode(string name, string status, ITvEpisode episode)
        {
            var cardTitle = $"Next episode of {name}";

            if (status == "Ended")
            {
                if (!episode.OriginalAirDate.HasValue)
                {
                    return(new AlexaResponse($"{name} has ended.", cardTitle));
                }

                return(new AlexaResponse($"{name} ended on <say-as interpret-as='date'>{episode.OriginalAirDate.Value:yyyyMMdd}</say-as>.", cardTitle, $"{name} ended on {episode.OriginalAirDate.Value:dd MMM yyyy}."));
            }

            if (episode?.OriginalAirDate == null)
            {
                return(new AlexaResponse($"Sorry, the air date for the next episode of {name} hasn't been released yet.", cardTitle));
            }

            var episodeName         = episode.Name == "TBA" || episode.Name == $"Episode #{episode.Season}.{episode.Number}" ? "" : $", called {episode.Name},";
            var airTime             = episode.OriginalAirDate.Value.ToString("HHmm") != "0000" ? episode.OriginalAirDate.Value.ToString("HH:mm") : "";
            var airTimeSpeechOutput = !string.IsNullOrEmpty(airTime) ? $" at <say-as interpret-as='time'>{airTime}</say-as>" : "";
            var airTimeTextOutput   = !string.IsNullOrEmpty(airTime) ? $" at {airTime}" : "";

            return(new AlexaResponse(
                       $"Season {episode.Season} episode {episode.Number} of {name}{episodeName} airs on <say-as interpret-as='date'>{episode.OriginalAirDate.Value:yyyyMMdd}</say-as>{airTimeSpeechOutput}.",
                       cardTitle,
                       $"Season {episode.Season} - Episode {episode.Number}\n{episodeName}\nAirs {episode.OriginalAirDate.Value:dd MMM yyyy}{airTimeTextOutput}."));
        }
Пример #2
0
        public async Task <ITvEpisode[]> GetTVShowEpisodeDetailsIn(string id, string language, params SeasonEpisodeNumber[] seasonEpisodeNumbers)
        {
            if (seasonEpisodeNumbers == null)
            {
                return new ITvEpisode[] { }
            }
            ;

            List <ITvEpisode> episodes = new List <ITvEpisode>();


            string url = $"http://my.scraper.url/searchEpisodes?id={id}&language={language}";

            string content = await GetPageContent(url);

            ITvEpisode episodeDetails = _nfoFactory.CreateEpisode();

            // TODO : parse your content to create to fill the episodeDetails
            episodes.Add(episodeDetails);


            // return all episodes
            return(episodes.ToArray());
        }
Пример #3
0
 /// <summary>
 /// Constructor Injection
 /// </summary>
 /// <param name="tvEpisodeService"></param>
 public Television(ITvEpisode tvEpisodeService)
 {
     constructorInjectedService = tvEpisodeService;
 }