Esempio n. 1
0
        private ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, Series series)
        {
            // find special episode in series season 0
            var episode = _episodeService.FindEpisodeByTitle(series.Id, 0, title);

            if (episode != null)
            {
                // create parsed info from tv episode
                var info = new ParsedEpisodeInfo();
                info.SeriesTitle           = series.Title;
                info.SeriesTitleInfo       = new SeriesTitleInfo();
                info.SeriesTitleInfo.Title = info.SeriesTitle;
                info.SeasonNumber          = episode.SeasonNumber;
                info.EpisodeNumbers        = new int[1] {
                    episode.EpisodeNumber
                };
                info.FullSeason   = false;
                info.Quality      = QualityParser.ParseQuality(title);
                info.ReleaseGroup = Parser.ParseReleaseGroup(title);
                info.Language     = Parser.ParseLanguage(title);
                info.Special      = true;

                _logger.Info("Found special episode {0} for title '{1}'", info, title);
                return(info);
            }

            return(null);
        }
Esempio n. 2
0
        private ParsedEpisodeInfo ParseSpecialEpisodeTitle(string releaseTitle, Series series)
        {
            // find special episode in series season 0
            var episode = _episodeService.FindEpisodeByTitle(series.Id, 0, releaseTitle);

            if (episode != null)
            {
                // create parsed info from tv episode
                var info = new ParsedEpisodeInfo
                {
                    ReleaseTitle    = releaseTitle,
                    SeriesTitle     = series.Title,
                    SeriesTitleInfo = new SeriesTitleInfo
                    {
                        Title = series.Title
                    },
                    SeasonNumber   = episode.SeasonNumber,
                    EpisodeNumbers = new int[1] {
                        episode.EpisodeNumber
                    },
                    FullSeason   = false,
                    Quality      = QualityParser.ParseQuality(releaseTitle),
                    ReleaseGroup = Parser.ParseReleaseGroup(releaseTitle),
                    Language     = LanguageParser.ParseLanguage(releaseTitle),
                    Special      = true
                };

                _logger.Debug("Found special episode {0} for title '{1}'", info, releaseTitle);
                return(info);
            }

            return(null);
        }
Esempio n. 3
0
        private ParsedEpisodeInfo ParseSpecialEpisodeTitle(ParsedEpisodeInfo parsedEpisodeInfo, string releaseTitle, Series series)
        {
            // SxxE00 episodes are sometimes mapped via TheXEM, don't use episode title parsing in that case.
            if (parsedEpisodeInfo != null && parsedEpisodeInfo.IsPossibleSceneSeasonSpecial && series.UseSceneNumbering)
            {
                if (_episodeService.FindEpisodesBySceneNumbering(series.Id, parsedEpisodeInfo.SeasonNumber, 0).Any())
                {
                    return(parsedEpisodeInfo);
                }
            }

            // find special episode in series season 0
            var episode = _episodeService.FindEpisodeByTitle(series.Id, 0, releaseTitle);

            if (episode != null)
            {
                // create parsed info from tv episode
                var info = new ParsedEpisodeInfo
                {
                    ReleaseTitle    = releaseTitle,
                    SeriesTitle     = series.Title,
                    SeriesTitleInfo = new SeriesTitleInfo
                    {
                        Title = series.Title
                    },
                    SeasonNumber   = episode.SeasonNumber,
                    EpisodeNumbers = new int[1] {
                        episode.EpisodeNumber
                    },
                    FullSeason   = false,
                    Quality      = QualityParser.ParseQuality(releaseTitle),
                    ReleaseGroup = Parser.ParseReleaseGroup(releaseTitle),
                    Language     = LanguageParser.ParseLanguage(releaseTitle),
                    Special      = true
                };

                _logger.Debug("Found special episode {0} for title '{1}'", info, releaseTitle);
                return(info);
            }

            return(null);
        }