/// <summary>
 /// Saves the metadata to the movie located at the specified path.
 /// </summary>
 /// <param name="path">The movie file path.</param>
 /// <param name="metadata">The metadata.</param>
 public async Task Save(string path, MovieMetadata metadata)
 {
     if (metadata.FileInformation == null)
     {
         metadata.FileInformation = _fileInformationService.GetVideoFileInformation(path);
     }
     await _metadataRepository.Save(path, metadata);
 }
        private async Task UpdateActorsMetadata(string path, MovieMetadata metadata)
        {
            string            movieFolder  = _fileSystemService.GetParentFolder(path, 1);
            MovieActorsResult actorsResult = await _metadataUpdater.FindCast(metadata.Id);

            UpdateActors(metadata, movieFolder, actorsResult.Cast);
            UpdateCrews(metadata, actorsResult.Crew);
        }
        /// <summary>
        /// Gets metadata about the movie located at the specified path.
        /// </summary>
        /// <param name="path">The movie file path.</param>
        /// <returns></returns>
        public async Task <MovieMetadata> Get(string path)
        {
            MovieMetadata metadata = await _metadataRepository.Get(path);

            SetActorsThumbPath(path, metadata);
            SetImagesPath(path, metadata);
            return(metadata);
        }
 /// <summary>
 /// Saves the metadata to the movie located at the specified path.
 /// </summary>
 /// <param name="path">The movie file path.</param>
 /// <param name="metadata">The metadata.</param>
 public async Task Save(string path, MovieMetadata metadata)
 {
     if (metadata.FileInformation == null)
     {
         metadata.FileInformation = _fileInformationService.GetVideoFileInformation(path);
     }
     await _metadataRepository.Save(path, metadata);
 }
        private void SetActorsThumbPath(string path, MovieMetadata metadata)
        {
            string movieFolder = _fileSystemService.GetParentFolder(path, 1);

            foreach (ActorMetadata actor in metadata.Actors)
            {
                actor.ThumbPath = ActorMetadata.GetActorThumbPath(movieFolder, actor.Name);
            }
        }
        private async Task UpdateInformationMetadata(string path, FullMovie movie)
        {
            MovieMetadata metadata = MapFullMovieToMetadata(movie);

            await UpdateActorsMetadata(path, metadata);

            metadata.FileInformation = _fileInformationService.GetVideoFileInformation(path);
            await Save(path, metadata);
        }
        private async Task <string> GetMovieId(string path)
        {
            MovieMetadata metadata = await Get(path);

            if (string.IsNullOrEmpty(metadata.Id))
            {
                return(await FindIdFromPath(path));
            }
            return(metadata.Id);
        }
Example #8
0
        public async Task Get_Always_SetPosterImagePath()
        {
            // Arrange
            _metadataRepository.Get(MovieFile)
            .Returns(new MovieMetadata().ToTask());

            // Act
            MovieMetadata metadata = await _service.Get(MovieFile);

            // Assert
            Assert.Equal(@"C:\Folder\Movies\Scott Pilgrim Vs. The World\Scott_Pilgrim_Vs_The_World-poster.jpg", metadata.ImagePosterPath);
        }
Example #9
0
        public async Task Save_Always_PersistsMetadata()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();

            // Act
            await _service.Save(MovieFile, metadata);

            // Assert
            _metadataRepository.Received()
            .Save(MovieFile, metadata).Async();
        }
        public async Task Get_WhenMetadataRepositoryReturnsMetadata_ReturnsIt()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();
            _metadataRepository.Get(MovieFile)
                .Returns(metadata.ToTask());

            // Act
            MovieMetadata actualMetadata = await _service.Get(MovieFile);

            // Assert
            Assert.Same(metadata, actualMetadata);
        }
Example #11
0
        public async Task Get_WhenMetadataRepositoryReturnsMetadata_ReturnsIt()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();

            _metadataRepository.Get(MovieFile)
            .Returns(metadata.ToTask());

            // Act
            MovieMetadata actualMetadata = await _service.Get(MovieFile);

            // Assert
            Assert.Same(metadata, actualMetadata);
        }
 private void UpdateCrews(MovieMetadata metadata, IEnumerable <Crew> crews)
 {
     foreach (Crew crew in crews)
     {
         if (crew.Department == "Directing" && crew.Job == "Director")
         {
             metadata.Directors.Add(crew.Name);
         }
         if (crew.Department == "Writing" && crew.Job != "Novel")
         {
             metadata.Credits.Add(crew.Name);
         }
     }
 }
 private static void UpdateActors(MovieMetadata metadata, string movieFolder, IEnumerable <Cast> actors)
 {
     foreach (Cast themoviedbActor in actors)
     {
         ActorMetadata actor = new ActorMetadata
         {
             Name      = themoviedbActor.Name,
             Role      = themoviedbActor.Character,
             Thumb     = themoviedbActor.ProfilePath,
             ThumbPath = ActorMetadata.GetActorThumbPath(movieFolder, themoviedbActor.Name)
         };
         metadata.Actors.Add(actor);
     }
 }
        private MovieMetadata MapFullMovieToMetadata(FullMovie movie)
        {
            MovieMetadata metadata = new MovieMetadata();

            metadata.Certification    = movie.Certification;
            metadata.Genres           = movie.Genres.Select(genre => genre.Name).ToList();
            metadata.Id               = movie.ImdbId;
            metadata.OriginalTitle    = movie.OriginalTitle;
            metadata.Outline          = movie.Overview;
            metadata.Plot             = movie.Plot;
            metadata.Rating           = movie.VoteAverage;
            metadata.RuntimeInMinutes = movie.Runtime;
            metadata.Tagline          = movie.Tagline;
            metadata.Title            = movie.Title;
            metadata.PlayCount        = 0;

            if (movie.BelongsToCollection != null)
            {
                metadata.SetName = movie.BelongsToCollection.Name;
            }

            if (movie.ReleaseDate.HasValue)
            {
                metadata.Premiered = movie.ReleaseDate;
                metadata.Year      = movie.ReleaseDate.Value.Year;
            }

            Reference productionCompany = movie.ProductionCompanies.FirstOrDefault();

            if (productionCompany != null)
            {
                metadata.Studio = productionCompany.Name;
            }

            Reference productionCountry = movie.ProductionCountries.FirstOrDefault();

            if (productionCountry != null)
            {
                metadata.Country = productionCountry.Name;
            }

            return(metadata);
        }
        public async Task Get_WithActors_SetsActorThumbnailPath()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();
            ActorMetadata actor = new ActorMetadata { Name = "Michael Cera" };
            metadata.Actors.Add(actor);
            _metadataRepository.Get(MovieFile)
                .Returns(metadata.ToTask());

            _fileSystemService.GetParentFolder(MovieFile, 1)
                .Returns(@"C:\Folder\Movies\Scott Pilgrim Vs. The World\");

            // Act
            MovieMetadata actualMetadata = await _service.Get(MovieFile);

            // Assert
            Assert.NotEmpty(actualMetadata.Actors);
            ActorMetadata firstActor = actualMetadata.Actors.First();
            Assert.Equal(@"C:\Folder\Movies\Scott Pilgrim Vs. The World\.actors\Michael_Cera.jpg", firstActor.ThumbPath);
        }
Example #16
0
        public async Task Get_WithActors_SetsActorThumbnailPath()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();
            ActorMetadata actor    = new ActorMetadata {
                Name = "Michael Cera"
            };

            metadata.Actors.Add(actor);
            _metadataRepository.Get(MovieFile)
            .Returns(metadata.ToTask());

            _fileSystemService.GetParentFolder(MovieFile, 1)
            .Returns(@"C:\Folder\Movies\Scott Pilgrim Vs. The World\");

            // Act
            MovieMetadata actualMetadata = await _service.Get(MovieFile);

            // Assert
            Assert.NotEmpty(actualMetadata.Actors);
            ActorMetadata firstActor = actualMetadata.Actors.First();

            Assert.Equal(@"C:\Folder\Movies\Scott Pilgrim Vs. The World\.actors\Michael_Cera.jpg", firstActor.ThumbPath);
        }
 private static void UpdateActors(MovieMetadata metadata, string movieFolder, IEnumerable<Cast> actors)
 {
     foreach (Cast themoviedbActor in actors)
     {
         ActorMetadata actor = new ActorMetadata
         {
             Name = themoviedbActor.Name,
             Role = themoviedbActor.Character,
             Thumb = themoviedbActor.ProfilePath,
             ThumbPath = ActorMetadata.GetActorThumbPath(movieFolder, themoviedbActor.Name)
         };
         metadata.Actors.Add(actor);
     }
 }
 private void SetActorsThumbPath(string path, MovieMetadata metadata)
 {
     string movieFolder = _fileSystemService.GetParentFolder(path, 1);
     foreach (ActorMetadata actor in metadata.Actors)
     {
         actor.ThumbPath = ActorMetadata.GetActorThumbPath(movieFolder, actor.Name);
     }
 }
 private void SetImagesPath(string path, MovieMetadata metadata)
 {
     metadata.ImageFanartPath = MovieHelper.GetMovieFanartPath(path);
     metadata.ImagePosterPath = MovieHelper.GetMoviePosterPath(path);
 }
 private void SetImagesPath(string path, MovieMetadata metadata)
 {
     metadata.ImageFanartPath = MovieHelper.GetMovieFanartPath(path);
     metadata.ImagePosterPath = MovieHelper.GetMoviePosterPath(path);
 }
        private MovieMetadata MapFullMovieToMetadata(FullMovie movie)
        {
            MovieMetadata metadata = new MovieMetadata();
            metadata.Certification = movie.Certification;
            metadata.Genres = movie.Genres.Select(genre => genre.Name).ToList();
            metadata.Id = movie.ImdbId;
            metadata.OriginalTitle = movie.OriginalTitle;
            metadata.Outline = movie.Overview;
            metadata.Plot = movie.Plot;
            metadata.Rating = movie.VoteAverage;
            metadata.RuntimeInMinutes = movie.Runtime;
            metadata.Tagline = movie.Tagline;
            metadata.Title = movie.Title;
            metadata.PlayCount = 0;

            if (movie.BelongsToCollection != null)
            {
                metadata.SetName = movie.BelongsToCollection.Name;
            }

            if (movie.ReleaseDate.HasValue)
            {
                metadata.Premiered = movie.ReleaseDate;
                metadata.Year = movie.ReleaseDate.Value.Year;
            }

            Reference productionCompany = movie.ProductionCompanies.FirstOrDefault();
            if (productionCompany != null)
            {
                metadata.Studio = productionCompany.Name;
            }

            Reference productionCountry = movie.ProductionCountries.FirstOrDefault();
            if (productionCountry != null)
            {
                metadata.Country = productionCountry.Name;
            }

            return metadata;
        }
 private async Task UpdateActorsMetadata(string path, MovieMetadata metadata)
 {
     string movieFolder = _fileSystemService.GetParentFolder(path, 1);
     MovieActorsResult actorsResult = await _metadataUpdater.FindCast(metadata.Id);
     UpdateActors(metadata, movieFolder, actorsResult.Cast);
     UpdateCrews(metadata, actorsResult.Crew);
 }
 private void UpdateCrews(MovieMetadata metadata, IEnumerable<Crew> crews)
 {
     foreach (Crew crew in crews)
     {
         if (crew.Department == "Directing" && crew.Job == "Director")
         {
             metadata.Directors.Add(crew.Name);
         }
         if (crew.Department == "Writing" && crew.Job != "Novel")
         {
             metadata.Credits.Add(crew.Name);
         }
     }
 }
        public async Task Save_Always_PersistsMetadata()
        {
            // Arrange
            MovieMetadata metadata = new MovieMetadata();

            // Act
            await _service.Save(MovieFile, metadata);

            // Assert
            _metadataRepository.Received()
                .Save(MovieFile, metadata).Async();
        }