示例#1
0
        public static EpisodeFileResource ToResource(this EpisodeFile model, Core.Tv.Series series, IUpgradableSpecification upgradableSpecification)
        {
            if (model == null)
            {
                return(null);
            }

            return(new EpisodeFileResource
            {
                Id = model.Id,

                SeriesId = model.SeriesId,
                SeasonNumber = model.SeasonNumber,
                RelativePath = model.RelativePath,
                Path = Path.Combine(series.Path, model.RelativePath),
                Size = model.Size,
                DateAdded = model.DateAdded,
                SceneName = model.SceneName,
                Quality = model.Quality,
                Language = model.Language,
                QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
                MediaInfo = model.MediaInfo.ToResource(model.SceneName),
                OriginalFilePath = model.OriginalFilePath
            });
        }
示例#2
0
        public static Core.Tv.Series ToModel(this SeriesResource resource, Core.Tv.Series series)
        {
            var updatedSeries = resource.ToModel();

            series.ApplyChanges(updatedSeries);

            return(series);
        }
示例#3
0
        public static SeriesResource ToResource(this Core.Tv.Series model, bool includeSeasonImages = false)
        {
            if (model == null)
            {
                return(null);
            }

            return(new SeriesResource
            {
                Id = model.Id,

                Title = model.Title,
                //AlternateTitles
                SortTitle = model.SortTitle,

                //TotalEpisodeCount
                //EpisodeCount
                //EpisodeFileCount
                //SizeOnDisk
                Status = model.Status,
                Overview = model.Overview,
                //NextAiring
                //PreviousAiring
                Network = model.Network,
                AirTime = model.AirTime,
                Images = model.Images,

                Seasons = model.Seasons.ToResource(includeSeasonImages),
                Year = model.Year,

                Path = model.Path,
                ProfileId = model.QualityProfileId,
                LanguageProfileId = model.LanguageProfileId,

                SeasonFolder = model.SeasonFolder,
                Monitored = model.Monitored,

                UseSceneNumbering = model.UseSceneNumbering,
                Runtime = model.Runtime,
                TvdbId = model.TvdbId,
                TvRageId = model.TvRageId,
                TvMazeId = model.TvMazeId,
                FirstAired = model.FirstAired,
                LastInfoSync = model.LastInfoSync,
                SeriesType = model.SeriesType,
                CleanTitle = model.CleanTitle,
                ImdbId = model.ImdbId,
                TitleSlug = model.TitleSlug,
                RootFolderPath = model.RootFolderPath,
                Certification = model.Certification,
                Genres = model.Genres,
                Tags = model.Tags,
                Added = model.Added,
                AddOptions = model.AddOptions,
                Ratings = model.Ratings
            });
        }
示例#4
0
        private EpisodeFileResource MapToResource(Core.Tv.Series series, EpisodeFile episodeFile)
        {
            var resource = episodeFile.InjectTo <EpisodeFileResource>();

            resource.Path = Path.Combine(series.Path, episodeFile.RelativePath);

            resource.QualityCutoffNotMet = _qualityUpgradableSpecification.CutoffNotMet(series.Profile.Value, episodeFile.Quality);

            return(resource);
        }
示例#5
0
        private SeriesResource GetSeriesResource(Core.Tv.Series series)
        {
            if (series == null)
            {
                return(null);
            }

            var resource = series.InjectTo <SeriesResource>();

            MapCoversToLocal(resource);
            FetchAndLinkSeriesStatistics(resource);

            return(resource);
        }
示例#6
0
        private JsonResponse <NamingSampleResource> GetExamples(NamingConfigResource config)
        {
            var nameSpec = config.InjectTo <NamingConfig>();

            var series = new Core.Tv.Series
            {
                SeriesType = SeriesTypes.Standard,
                Title      = "Series Title"
            };

            var episode1 = new Episode
            {
                SeasonNumber  = 1,
                EpisodeNumber = 1,
                Title         = "Episode Title (1)"
            };

            var episode2 = new Episode
            {
                SeasonNumber  = 1,
                EpisodeNumber = 2,
                Title         = "Episode Title (2)"
            };

            var episodeFile = new EpisodeFile
            {
                Quality = new QualityModel(Quality.HDTV720p),
                Path    = @"C:\Test\Series.Title.S01E01.720p.HDTV.x264-EVOLVE.mkv"
            };

            var sampleResource = new NamingSampleResource();

            sampleResource.SingleEpisodeExample = _buildFileNames.BuildFilename(new List <Episode> {
                episode1
            },
                                                                                series,
                                                                                episodeFile,
                                                                                nameSpec);

            episodeFile.Path = @"C:\Test\Series.Title.S01E01-E02.720p.HDTV.x264-EVOLVE.mkv";

            sampleResource.MultiEpisodeExample = _buildFileNames.BuildFilename(new List <Episode> {
                episode1, episode2
            },
                                                                               series,
                                                                               episodeFile,
                                                                               nameSpec);

            return(sampleResource.AsResponse());
        }
示例#7
0
        public static Core.Tv.Series ToModel(this SeriesResource resource, Core.Tv.Series series)
        {
            series.TvdbId = resource.TvdbId;

            series.Seasons   = resource.Seasons.ToModel();
            series.Path      = resource.Path;
            series.ProfileId = resource.ProfileId;

            series.SeasonFolder = resource.SeasonFolder;
            series.Monitored    = resource.Monitored;

            series.SeriesType     = resource.SeriesType;
            series.RootFolderPath = resource.RootFolderPath;
            series.Tags           = resource.Tags;
            series.AddOptions     = resource.AddOptions;

            return(series);
        }
示例#8
0
        public static EpisodeFileResource ToResource(this Core.MediaFiles.EpisodeFile model, Core.Tv.Series series, Core.DecisionEngine.IQualityUpgradableSpecification qualityUpgradableSpecification)
        {
            if (model == null)
            {
                return(null);
            }

            return(new EpisodeFileResource
            {
                Id = model.Id,

                SeriesId = model.SeriesId,
                SeasonNumber = model.SeasonNumber,
                RelativePath = model.RelativePath,
                Path = Path.Combine(series.Path, model.RelativePath),
                Size = model.Size,
                DateAdded = model.DateAdded,
                SceneName = model.SceneName,
                Quality = model.Quality,
                QualityCutoffNotMet = qualityUpgradableSpecification.CutoffNotMet(series.Profile.Value, model.Quality),
                MediaInfo = model.MediaInfo.ToResource(model.SceneName),
            });
        }