Exemple #1
0
        public bool Promote(int mappingId)
        {
            try
            {
                var pendingItem = GetPending(mappingId);

                var mapping = new SceneMapping
                {
                    CleanTitle = pendingItem.CleanTitle,
                    Id         = pendingItem.Id,
                    Title      = pendingItem.Title,
                    Season     = -1
                };

                Insert(mapping);
                DeletePending(mappingId);
            }
            catch (Exception ex)
            {
                logger.WarnException("Unable to promote scene mapping", ex);
                return(false);
            }

            return(true);
        }
        public static AlternateTitleResource ToResource(this SceneMapping sceneMapping)
        {
            if (sceneMapping == null)
            {
                return(null);
            }

            return(new AlternateTitleResource
            {
                Title = sceneMapping.Title,
                SeasonNumber = sceneMapping.SeasonNumber,
                SceneSeasonNumber = sceneMapping.SceneSeasonNumber,
                SceneOrigin = sceneMapping.SceneOrigin,
                Comment = sceneMapping.Comment
            });
        }
        public static AlternateTitleResource ToResource(this SceneMapping sceneMapping)
        {
            if (sceneMapping == null)
            {
                return(null);
            }

            var comment = sceneMapping.Comment;

            if (comment.IsNullOrWhiteSpace() && sceneMapping.FilterRegex.IsNotNullOrWhiteSpace())
            {
                comment = "Limited matching";
            }

            return(new AlternateTitleResource
            {
                Title = sceneMapping.Title,
                SeasonNumber = sceneMapping.SeasonNumber,
                SceneSeasonNumber = sceneMapping.SceneSeasonNumber,
                SceneOrigin = sceneMapping.SceneOrigin,
                Comment = comment
            });
        }
        private FindSeriesResult FindSeries(ParsedEpisodeInfo parsedEpisodeInfo, int tvdbId, int tvRageId, SceneMapping sceneMapping, SearchCriteriaBase searchCriteria)
        {
            Series series = null;

            if (sceneMapping != null)
            {
                if (searchCriteria != null && searchCriteria.Series.TvdbId == sceneMapping.TvdbId)
                {
                    return(new FindSeriesResult(searchCriteria.Series, SeriesMatchType.Alias));
                }

                series = _seriesService.FindByTvdbId(sceneMapping.TvdbId);

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

                return(new FindSeriesResult(series, SeriesMatchType.Alias));
            }

            if (searchCriteria != null)
            {
                if (searchCriteria.Series.CleanTitle == parsedEpisodeInfo.SeriesTitle.CleanSeriesTitle())
                {
                    return(new FindSeriesResult(searchCriteria.Series, SeriesMatchType.Title));
                }

                if (tvdbId > 0 && tvdbId == searchCriteria.Series.TvdbId)
                {
                    _logger.Debug()
                    .Message("Found matching series by TVDB ID {0}, an alias may be needed for: {1}", tvdbId, parsedEpisodeInfo.SeriesTitle)
                    .Property("TvdbId", tvdbId)
                    .Property("ParsedEpisodeInfo", parsedEpisodeInfo)
                    .WriteSentryWarn("TvdbIdMatch", tvdbId.ToString(), parsedEpisodeInfo.SeriesTitle)
                    .Write();

                    return(new FindSeriesResult(searchCriteria.Series, SeriesMatchType.Id));
                }

                if (tvRageId > 0 && tvRageId == searchCriteria.Series.TvRageId)
                {
                    _logger.Debug()
                    .Message("Found matching series by TVRage ID {0}, an alias may be needed for: {1}", tvRageId, parsedEpisodeInfo.SeriesTitle)
                    .Property("TvRageId", tvRageId)
                    .Property("ParsedEpisodeInfo", parsedEpisodeInfo)
                    .WriteSentryWarn("TvRageIdMatch", tvRageId.ToString(), parsedEpisodeInfo.SeriesTitle)
                    .Write();

                    return(new FindSeriesResult(searchCriteria.Series, SeriesMatchType.Id));
                }
            }

            var matchType = SeriesMatchType.Unknown;

            series = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitle);

            if (series != null)
            {
                matchType = SeriesMatchType.Title;
            }

            if (series == null && parsedEpisodeInfo.SeriesTitleInfo.AllTitles != null)
            {
                series    = GetSeriesByAllTitles(parsedEpisodeInfo);
                matchType = SeriesMatchType.Title;
            }

            if (series == null && parsedEpisodeInfo.SeriesTitleInfo.Year > 0)
            {
                series    = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitleInfo.TitleWithoutYear, parsedEpisodeInfo.SeriesTitleInfo.Year);
                matchType = SeriesMatchType.Title;
            }

            if (series == null && tvdbId > 0)
            {
                series = _seriesService.FindByTvdbId(tvdbId);

                if (series != null)
                {
                    _logger.Debug()
                    .Message("Found matching series by TVDB ID {0}, an alias may be needed for: {1}", tvdbId, parsedEpisodeInfo.SeriesTitle)
                    .Property("TvdbId", tvdbId)
                    .Property("ParsedEpisodeInfo", parsedEpisodeInfo)
                    .WriteSentryWarn("TvdbIdMatch", tvdbId.ToString(), parsedEpisodeInfo.SeriesTitle)
                    .Write();

                    matchType = SeriesMatchType.Id;
                }
            }

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

                if (series != null)
                {
                    _logger.Debug()
                    .Message("Found matching series by TVRage ID {0}, an alias may be needed for: {1}", tvdbId, parsedEpisodeInfo.SeriesTitle)
                    .Property("TvRageId", tvRageId)
                    .Property("ParsedEpisodeInfo", parsedEpisodeInfo)
                    .WriteSentryWarn("TvRageIdMatch", tvRageId.ToString(), parsedEpisodeInfo.SeriesTitle)
                    .Write();

                    matchType = SeriesMatchType.Id;
                }
            }

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

            return(new FindSeriesResult(series, matchType));
        }
Exemple #5
0
 public void LoadScene(SceneMapping scene)
 {
     SceneManager.LoadScene((int)scene);
 }
Exemple #6
0
 public void Insert(SceneMapping sceneMapping)
 {
     _database.Insert(sceneMapping);
 }