/// <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); }
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); }
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); }
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); }
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); }
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 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 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); } } }