예제 #1
0
        public ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, int tvRageId, SearchCriteriaBase searchCriteria = null)
        {
            if (searchCriteria != null)
            {
                var tvdbId = _sceneMappingService.GetTvDbId(title);
                if (tvdbId.HasValue)
                {
                    if (searchCriteria.Series.TvdbId == tvdbId)
                    {
                        return(ParseSpecialEpisodeTitle(title, searchCriteria.Series));
                    }
                }

                if (tvRageId == searchCriteria.Series.TvRageId)
                {
                    return(ParseSpecialEpisodeTitle(title, searchCriteria.Series));
                }
            }

            var series = _seriesService.FindByTitleInexact(title);

            if (series == null && tvRageId > 0)
            {
                series = _seriesService.FindByTvRageId(tvRageId);
            }

            if (series == null)
            {
                _logger.Debug("No matching series {0}", title);
                return(null);
            }

            return(ParseSpecialEpisodeTitle(title, series));
        }
예제 #2
0
        private Series GetSeries(ParsedEpisodeInfo parsedEpisodeInfo, int tvRageId, SearchCriteriaBase searchCriteria)
        {
            var tvdbId = _sceneMappingService.GetTvDbId(parsedEpisodeInfo.SeriesTitle);

            if (tvdbId.HasValue)
            {
                if (searchCriteria.Series.TvdbId == tvdbId)
                {
                    return(searchCriteria.Series);
                }
            }

            if (parsedEpisodeInfo.SeriesTitle.CleanSeriesTitle() == searchCriteria.Series.CleanTitle)
            {
                return(searchCriteria.Series);
            }

            if (tvRageId == searchCriteria.Series.TvRageId)
            {
                //TODO: If series is found by TvRageId, we should report it as a scene naming exception, since it will fail to import
                return(searchCriteria.Series);
            }

            return(GetSeries(parsedEpisodeInfo, tvRageId));
        }
예제 #3
0
        public Series FindByTitle(string title)
        {
            var tvdbId = _sceneMappingService.GetTvDbId(title);

            if (tvdbId.HasValue)
            {
                return(FindByTvdbId(tvdbId.Value));
            }

            return(_seriesRepository.FindByTitle(title.CleanSeriesTitle()));
        }