mirror of
https://github.com/Radarr/Radarr.git
synced 2025-04-23 14:07:20 -04:00
fixup!
This commit is contained in:
parent
b6f94855eb
commit
fb7ab09f57
26 changed files with 80 additions and 88 deletions
|
@ -74,11 +74,11 @@ class CollectionConnector extends Component {
|
|||
|
||||
onScroll = ({ scrollTop }) => {
|
||||
scrollPositions.movieCollections = scrollTop;
|
||||
}
|
||||
};
|
||||
|
||||
onUpdateSelectedPress = (payload) => {
|
||||
this.props.onUpdateSelectedPress(payload);
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Render
|
||||
|
|
|
@ -269,7 +269,7 @@ class MovieDetails extends Component {
|
|||
monitored,
|
||||
studio,
|
||||
genres,
|
||||
collectionId,
|
||||
collection,
|
||||
overview,
|
||||
youTubeTrailerId,
|
||||
isAvailable,
|
||||
|
@ -576,7 +576,7 @@ class MovieDetails extends Component {
|
|||
</InfoLabel>
|
||||
|
||||
{
|
||||
!!collectionId &&
|
||||
!!collection &&
|
||||
<InfoLabel
|
||||
className={styles.detailsInfoLabel}
|
||||
title={translate('Collection')}
|
||||
|
@ -584,7 +584,7 @@ class MovieDetails extends Component {
|
|||
>
|
||||
<div className={styles.collection}>
|
||||
<MovieCollectionLabelConnector
|
||||
collectionId={collectionId}
|
||||
tmdbId={collection.tmdbId}
|
||||
/>
|
||||
</div>
|
||||
</InfoLabel>
|
||||
|
@ -800,7 +800,7 @@ MovieDetails.propTypes = {
|
|||
status: PropTypes.string.isRequired,
|
||||
studio: PropTypes.string,
|
||||
genres: PropTypes.arrayOf(PropTypes.string).isRequired,
|
||||
collectionId: PropTypes.number,
|
||||
collection: PropTypes.object,
|
||||
youTubeTrailerId: PropTypes.string,
|
||||
isAvailable: PropTypes.bool.isRequired,
|
||||
inCinemas: PropTypes.string,
|
||||
|
|
|
@ -4,7 +4,6 @@ import { connect } from 'react-redux';
|
|||
import { createSelector } from 'reselect';
|
||||
import * as commandNames from 'Commands/commandNames';
|
||||
import { executeCommand } from 'Store/Actions/commandActions';
|
||||
import createCollectionSelector from 'Store/Selectors/createCollectionSelector';
|
||||
import createExecutingCommandsSelector from 'Store/Selectors/createExecutingCommandsSelector';
|
||||
import createMovieQualityProfileSelector from 'Store/Selectors/createMovieQualityProfileSelector';
|
||||
import createMovieSelector from 'Store/Selectors/createMovieSelector';
|
||||
|
@ -30,14 +29,12 @@ function selectShowSearchAction() {
|
|||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
createMovieSelector(),
|
||||
createCollectionSelector(),
|
||||
createMovieQualityProfileSelector(),
|
||||
selectShowSearchAction(),
|
||||
createExecutingCommandsSelector(),
|
||||
(state) => state.queue.details.items,
|
||||
(
|
||||
movie,
|
||||
collection,
|
||||
qualityProfile,
|
||||
showSearchAction,
|
||||
executingCommands,
|
||||
|
@ -71,7 +68,6 @@ function createMapStateToProps() {
|
|||
|
||||
return {
|
||||
...movie,
|
||||
collection,
|
||||
qualityProfile,
|
||||
showSearchAction,
|
||||
isRefreshingMovie,
|
||||
|
|
|
@ -3,13 +3,14 @@ import React, { Component } from 'react';
|
|||
import { connect } from 'react-redux';
|
||||
import { createSelector } from 'reselect';
|
||||
import { toggleCollectionMonitored } from 'Store/Actions/movieCollectionActions';
|
||||
import createCollectionSelector from 'Store/Selectors/createCollectionSelector';
|
||||
import MovieCollectionLabel from './MovieCollectionLabel';
|
||||
|
||||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
createCollectionSelector(),
|
||||
(collection) => {
|
||||
(state, { tmdbId }) => tmdbId,
|
||||
(state) => state.movieCollections.items,
|
||||
(tmdbId, collections) => {
|
||||
const collection = collections.find((movie) => movie.tmdbId === tmdbId);
|
||||
return {
|
||||
...collection
|
||||
};
|
||||
|
@ -28,10 +29,10 @@ class MovieCollectionLabelConnector extends Component {
|
|||
|
||||
onMonitorTogglePress = (monitored) => {
|
||||
this.props.toggleCollectionMonitored({
|
||||
collectionId: this.props.collectionId,
|
||||
collectionId: this.props.id,
|
||||
monitored
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Render
|
||||
|
@ -47,7 +48,8 @@ class MovieCollectionLabelConnector extends Component {
|
|||
}
|
||||
|
||||
MovieCollectionLabelConnector.propTypes = {
|
||||
collectionId: PropTypes.number.isRequired,
|
||||
tmdbId: PropTypes.number.isRequired,
|
||||
id: PropTypes.number.isRequired,
|
||||
monitored: PropTypes.bool.isRequired,
|
||||
toggleCollectionMonitored: PropTypes.func.isRequired
|
||||
};
|
||||
|
|
|
@ -50,10 +50,10 @@ namespace NzbDrone.Core.Test.Datastore.Migration
|
|||
collections.First().Title.Should().Be("Some Collection");
|
||||
collections.First().Monitored.Should().BeFalse();
|
||||
|
||||
var movies = db.Query<Movie208>("SELECT Id, CollectionId FROM MovieMetadata");
|
||||
var movies = db.Query<Movie208>("SELECT Id, CollectionTmdbId FROM MovieMetadata");
|
||||
|
||||
movies.Should().HaveCount(1);
|
||||
movies.First().CollectionId.Should().Be(collections.First().Id);
|
||||
movies.First().CollectionTmdbId.Should().Be(collections.First().TmdbId);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -277,7 +277,7 @@ namespace NzbDrone.Core.Test.Datastore.Migration
|
|||
public class Movie208
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int CollectionId { get; set; }
|
||||
public int CollectionTmdbId { get; set; }
|
||||
}
|
||||
|
||||
public class ListDefinition208
|
||||
|
|
|
@ -16,6 +16,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers
|
|||
{
|
||||
var collection = Builder<MovieCollection>.CreateNew()
|
||||
.With(h => h.Id = 3)
|
||||
.With(h => h.TmdbId = 123456)
|
||||
.With(h => h.Title = "Some Credit")
|
||||
.BuildNew();
|
||||
|
||||
|
@ -29,12 +30,13 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers
|
|||
{
|
||||
var collection = Builder<MovieCollection>.CreateNew()
|
||||
.With(h => h.Id = 3)
|
||||
.With(h => h.TmdbId = 123456)
|
||||
.With(h => h.Title = "Some Credit")
|
||||
.BuildNew();
|
||||
|
||||
Db.Insert(collection);
|
||||
|
||||
var movie = Builder<MovieMetadata>.CreateNew().With(m => m.CollectionId = collection.Id).BuildNew();
|
||||
var movie = Builder<MovieMetadata>.CreateNew().With(m => m.CollectionTmdbId = collection.TmdbId).BuildNew();
|
||||
|
||||
Db.Insert(movie);
|
||||
|
||||
|
|
|
@ -227,7 +227,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests
|
|||
public void should_replace_movie_collection()
|
||||
{
|
||||
_namingConfig.StandardMovieFormat = "{Movie Collection}";
|
||||
_movie.MovieMetadata.Value.Collection = new MovieCollection { Title = "South Part Collection" };
|
||||
_movie.MovieMetadata.Value.CollectionTitle = "South Part Collection";
|
||||
|
||||
Subject.BuildFileName(_movie, _movieFile)
|
||||
.Should().Be("South Part Collection");
|
||||
|
|
|
@ -29,10 +29,11 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
.WithColumn("Images").AsString().WithDefaultValue("[]")
|
||||
.WithColumn("Monitored").AsBoolean().WithDefaultValue(false)
|
||||
.WithColumn("LastInfoSync").AsDateTime().Nullable()
|
||||
.WithColumn("Added").AsDateTime().Nullable()
|
||||
.WithColumn("MovieTmdbIds").AsString().WithDefaultValue("[]");
|
||||
.WithColumn("Added").AsDateTime().Nullable();
|
||||
|
||||
Alter.Table("MovieMetadata").AddColumn("CollectionTmdbId").AsInt32().Nullable()
|
||||
.AddColumn("CollectionTitle").AsString().Nullable();
|
||||
|
||||
Alter.Table("MovieMetadata").AddColumn("CollectionId").AsInt32().Nullable();
|
||||
Alter.Table("ImportLists").AddColumn("Monitor").AsInt32().Nullable();
|
||||
|
||||
Execute.WithConnection(MigrateCollections);
|
||||
|
@ -192,23 +193,6 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
|
||||
private void MapCollections(IDbConnection conn, IDbTransaction tran)
|
||||
{
|
||||
var collections = new List<MovieCollection207>();
|
||||
using (var getCollections = conn.CreateCommand())
|
||||
{
|
||||
getCollections.Transaction = tran;
|
||||
getCollections.CommandText = @"SELECT ""Id"", ""TmdbId"" FROM ""Collections""";
|
||||
|
||||
using (var definitionsReader = getCollections.ExecuteReader())
|
||||
{
|
||||
while (definitionsReader.Read())
|
||||
{
|
||||
int id = definitionsReader.GetInt32(0);
|
||||
int tmdbId = definitionsReader.GetInt32(1);
|
||||
collections.Add(new MovieCollection207 { Id = id, TmdbId = tmdbId });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
using (var cmd = conn.CreateCommand())
|
||||
{
|
||||
cmd.Transaction = tran;
|
||||
|
@ -222,13 +206,15 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
var collection = reader.GetString(1);
|
||||
var data = STJson.Deserialize<MovieCollection206>(collection);
|
||||
|
||||
var collectionId = collections.SingleOrDefault(x => x.TmdbId == data.TmdbId).Id;
|
||||
var collectionId = data.TmdbId;
|
||||
var collectionTitle = data.Name;
|
||||
|
||||
using (var updateCmd = conn.CreateCommand())
|
||||
{
|
||||
updateCmd.Transaction = tran;
|
||||
updateCmd.CommandText = @"UPDATE ""MovieMetadata"" SET ""CollectionId"" = ? WHERE ""Id"" = ?";
|
||||
updateCmd.CommandText = @"UPDATE ""MovieMetadata"" SET ""CollectionTmdbId"" = ?, ""CollectionTitle"" = ? WHERE ""Id"" = ?";
|
||||
updateCmd.AddParameter(collectionId);
|
||||
updateCmd.AddParameter(collectionTitle);
|
||||
updateCmd.AddParameter(id);
|
||||
|
||||
updateCmd.ExecuteNonQuery();
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
|||
switch (additionalTag)
|
||||
{
|
||||
case (int)AdditionalTags.Collection:
|
||||
result.Add(remoteMovie.Movie.MovieMetadata.Value.Collection.Value.Title);
|
||||
result.Add(remoteMovie.Movie.MovieMetadata.Value.CollectionTitle);
|
||||
break;
|
||||
case (int)AdditionalTags.Quality:
|
||||
result.Add(remoteMovie.ParsedMovieInfo.Quality.Quality.ToString());
|
||||
|
|
|
@ -251,11 +251,11 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
|
|||
|
||||
details.Add(new XElement("country"));
|
||||
|
||||
if (movie.MovieMetadata.Value.Collection?.Value.Title != null)
|
||||
if (movie.MovieMetadata.Value.CollectionTitle != null)
|
||||
{
|
||||
var setElement = new XElement("set");
|
||||
|
||||
setElement.Add(new XElement("name", movie.MovieMetadata.Value.Collection.Value.Title));
|
||||
setElement.Add(new XElement("name", movie.MovieMetadata.Value.CollectionTitle));
|
||||
setElement.Add(new XElement("overview"));
|
||||
|
||||
details.Add(setElement);
|
||||
|
|
|
@ -16,12 +16,12 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
|
|||
{
|
||||
using (var mapper = _database.OpenConnection())
|
||||
{
|
||||
mapper.Execute(@"DELETE FROM Collections
|
||||
WHERE Id IN (
|
||||
SELECT Collections.Id FROM Collections
|
||||
LEFT OUTER JOIN Movies
|
||||
ON Collections.Id = Movies.CollectionId
|
||||
WHERE Movies.Id IS NULL)");
|
||||
mapper.Execute(@"DELETE FROM ""Collections""
|
||||
WHERE ""TmdbId"" IN (
|
||||
SELECT ""Collections"".""TmdbId"" FROM ""Collections""
|
||||
LEFT OUTER JOIN ""MovieMetadata""
|
||||
ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId""
|
||||
WHERE ""MovieMetadata"".""Id"" IS NULL)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -287,7 +287,8 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
|
|||
|
||||
if (resource.Collection != null)
|
||||
{
|
||||
movie.Collection = MapCollection(resource.Collection);
|
||||
movie.CollectionTmdbId = resource.Collection.TmdbId;
|
||||
movie.CollectionTitle = resource.Collection.Name;
|
||||
}
|
||||
|
||||
return movie;
|
||||
|
@ -510,7 +511,6 @@ namespace NzbDrone.Core.MetadataSource.SkyHook
|
|||
CleanTitle = arg.Name.CleanMovieTitle(),
|
||||
SortTitle = Parser.Parser.NormalizeTitle(arg.Name),
|
||||
Images = arg.Images?.Select(MapImage).ToList() ?? new List<MediaCover.MediaCover>(),
|
||||
MovieTmdbIds = arg.Parts?.Select(x => x.TmdbId).ToList() ?? new List<int>(),
|
||||
Movies = arg.Parts?.Select(x => MapMovie(x)).ToList() ?? new List<MovieMetadata>()
|
||||
};
|
||||
|
||||
|
|
|
@ -61,10 +61,10 @@ namespace NzbDrone.Core.Movies
|
|||
_logger.Info("Adding Movie {0} Path: [{1}]", newMovie, newMovie.Path);
|
||||
|
||||
// add collection
|
||||
if (newMovie.MovieMetadata.Value.Collection != null)
|
||||
if (newMovie.MovieMetadata.Value.CollectionTmdbId > 0)
|
||||
{
|
||||
var newCollection = _collectionService.AddMovieCollection(BuildCollection(newMovie));
|
||||
newMovie.MovieMetadata.Value.CollectionId = newCollection.Id;
|
||||
newMovie.MovieMetadata.Value.CollectionTmdbId = newCollection.TmdbId;
|
||||
}
|
||||
|
||||
_movieMetadataService.Upsert(newMovie.MovieMetadata.Value);
|
||||
|
@ -92,10 +92,10 @@ namespace NzbDrone.Core.Movies
|
|||
movie.Added = added;
|
||||
|
||||
// add collection
|
||||
if (movie.MovieMetadata.Value.Collection != null)
|
||||
if (movie.MovieMetadata.Value.CollectionTmdbId > 0)
|
||||
{
|
||||
var newCollection = _collectionService.AddMovieCollection(BuildCollection(movie));
|
||||
movie.MovieMetadata.Value.CollectionId = newCollection.Id;
|
||||
movie.MovieMetadata.Value.CollectionTmdbId = newCollection.TmdbId;
|
||||
}
|
||||
|
||||
moviesToAdd.Add(movie);
|
||||
|
@ -142,7 +142,12 @@ namespace NzbDrone.Core.Movies
|
|||
|
||||
private MovieCollection BuildCollection(Movie newMovie)
|
||||
{
|
||||
var collection = newMovie.MovieMetadata.Value.Collection.Value;
|
||||
var collection = new MovieCollection
|
||||
{
|
||||
TmdbId = newMovie.MovieMetadata.Value.CollectionTmdbId,
|
||||
Title = newMovie.MovieMetadata.Value.CollectionTitle
|
||||
};
|
||||
|
||||
collection.Monitored = newMovie.AddOptions?.Monitor == MonitorTypes.MovieAndCollection;
|
||||
collection.SearchOnAdd = newMovie.AddOptions?.SearchForMovie ?? false;
|
||||
collection.QualityProfileId = newMovie.ProfileId;
|
||||
|
|
|
@ -9,7 +9,6 @@ namespace NzbDrone.Core.Movies.Collections
|
|||
public MovieCollection()
|
||||
{
|
||||
Images = new List<MediaCover.MediaCover>();
|
||||
MovieTmdbIds = new List<int>();
|
||||
}
|
||||
|
||||
public string Title { get; set; }
|
||||
|
@ -25,7 +24,6 @@ namespace NzbDrone.Core.Movies.Collections
|
|||
public DateTime? LastInfoSync { get; set; }
|
||||
public List<MediaCover.MediaCover> Images { get; set; }
|
||||
public DateTime Added { get; set; }
|
||||
public List<int> MovieTmdbIds { get; set; }
|
||||
public List<MovieMetadata> Movies { get; set; }
|
||||
|
||||
public void ApplyChanges(MovieCollection otherCollection)
|
||||
|
|
|
@ -92,20 +92,20 @@ namespace NzbDrone.Core.Movies.Collections
|
|||
|
||||
public void HandleAsync(MoviesDeletedEvent message)
|
||||
{
|
||||
var collections = message.Movies.Select(x => x.MovieMetadata.Value.CollectionId).Distinct();
|
||||
var collections = message.Movies.Select(x => x.MovieMetadata.Value.CollectionTmdbId).Distinct();
|
||||
|
||||
foreach (var collectionId in collections)
|
||||
foreach (var collectionTmdbId in collections)
|
||||
{
|
||||
if (collectionId == 0 || _movieMetadataService.GetMoviesByCollectionId(collectionId).Any())
|
||||
if (collectionTmdbId == 0 || _movieMetadataService.GetMoviesByCollectionTmdbId(collectionTmdbId).Any())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var collection = GetCollection(collectionId);
|
||||
var collection = FindByTmdbId(collectionTmdbId);
|
||||
|
||||
_eventAggregator.PublishEvent(new CollectionDeletedEvent(collection));
|
||||
|
||||
_repo.Delete(collectionId);
|
||||
_repo.Delete(collectionTmdbId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,8 +33,8 @@ namespace NzbDrone.Core.Movies
|
|||
public int Year { get; set; }
|
||||
public Ratings Ratings { get; set; }
|
||||
|
||||
public int CollectionId { get; set; }
|
||||
public LazyLoaded<MovieCollection> Collection { get; set; }
|
||||
public int CollectionTmdbId { get; set; }
|
||||
public string CollectionTitle { get; set; }
|
||||
public DateTime? LastInfoSync { get; set; }
|
||||
public int Runtime { get; set; }
|
||||
public string Website { get; set; }
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace NzbDrone.Core.Movies
|
|||
{
|
||||
MovieMetadata FindByTmdbId(int tmdbId);
|
||||
List<MovieMetadata> FindById(List<int> tmdbIds);
|
||||
List<MovieMetadata> GetMoviesByCollectionId(int collectionId);
|
||||
List<MovieMetadata> GetMoviesByCollectionTmdbId(int collectionId);
|
||||
bool UpsertMany(List<MovieMetadata> data);
|
||||
}
|
||||
|
||||
|
@ -34,9 +34,9 @@ namespace NzbDrone.Core.Movies
|
|||
return Query(x => Enumerable.Contains(tmdbIds, x.TmdbId));
|
||||
}
|
||||
|
||||
public List<MovieMetadata> GetMoviesByCollectionId(int collectionId)
|
||||
public List<MovieMetadata> GetMoviesByCollectionTmdbId(int collectionId)
|
||||
{
|
||||
return Query(x => x.CollectionId == collectionId);
|
||||
return Query(x => x.CollectionTmdbId == collectionId);
|
||||
}
|
||||
|
||||
public bool UpsertMany(List<MovieMetadata> data)
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace NzbDrone.Core.Movies
|
|||
{
|
||||
MovieMetadata Get(int id);
|
||||
MovieMetadata FindByTmdbId(int tmdbid);
|
||||
List<MovieMetadata> GetMoviesByCollectionId(int collectionId);
|
||||
List<MovieMetadata> GetMoviesByCollectionTmdbId(int collectionId);
|
||||
bool Upsert(MovieMetadata movie);
|
||||
bool UpsertMany(List<MovieMetadata> movies);
|
||||
}
|
||||
|
@ -25,9 +25,9 @@ namespace NzbDrone.Core.Movies
|
|||
return _movieMetadataRepository.FindByTmdbId(tmdbid);
|
||||
}
|
||||
|
||||
public List<MovieMetadata> GetMoviesByCollectionId(int collectionId)
|
||||
public List<MovieMetadata> GetMoviesByCollectionTmdbId(int collectionId)
|
||||
{
|
||||
return _movieMetadataRepository.GetMoviesByCollectionId(collectionId);
|
||||
return _movieMetadataRepository.GetMoviesByCollectionTmdbId(collectionId);
|
||||
}
|
||||
|
||||
public MovieMetadata Get(int id)
|
||||
|
|
|
@ -225,7 +225,7 @@ namespace NzbDrone.Core.Movies
|
|||
|
||||
public List<Movie> GetMoviesByCollectionId(int collectionId)
|
||||
{
|
||||
return Query(x => x.MovieMetadata.Value.CollectionId == collectionId);
|
||||
return Query(x => x.MovieMetadata.Value.CollectionTmdbId == collectionId);
|
||||
}
|
||||
|
||||
public void SetFileId(int fileId, int movieId)
|
||||
|
|
|
@ -65,9 +65,8 @@ namespace NzbDrone.Core.Movies
|
|||
collection.SortTitle = collectionInfo.SortTitle;
|
||||
collection.LastInfoSync = DateTime.UtcNow;
|
||||
collection.Images = collectionInfo.Images;
|
||||
collection.MovieTmdbIds = collectionInfo.MovieTmdbIds;
|
||||
|
||||
collectionInfo.Movies.ForEach(x => x.CollectionId = collection.Id);
|
||||
collectionInfo.Movies.ForEach(x => x.CollectionTmdbId = collection.TmdbId);
|
||||
_movieMetadataService.UpsertMany(collectionInfo.Movies);
|
||||
|
||||
_logger.Debug("Finished collection refresh for {0}", collection.Title);
|
||||
|
@ -100,9 +99,10 @@ namespace NzbDrone.Core.Movies
|
|||
{
|
||||
var existingMovies = _movieService.AllMovieTmdbIds();
|
||||
|
||||
_addMovieService.AddMovies(collection.MovieTmdbIds.Where(m => !existingMovies.Contains(m)).Select(m => new Movie
|
||||
_addMovieService.AddMovies(collection.Movies.Where(m => !existingMovies.Contains(m.TmdbId)).Select(m => new Movie
|
||||
{
|
||||
TmdbId = m,
|
||||
TmdbId = m.TmdbId,
|
||||
Title = m.Title,
|
||||
ProfileId = collection.QualityProfileId,
|
||||
RootFolderPath = collection.RootFolderPath,
|
||||
MinimumAvailability = collection.MinimumAvailability,
|
||||
|
|
|
@ -106,7 +106,8 @@ namespace NzbDrone.Core.Movies
|
|||
movieMetadata.LastInfoSync = DateTime.UtcNow;
|
||||
movieMetadata.Runtime = movieInfo.Runtime;
|
||||
movieMetadata.Ratings = movieInfo.Ratings;
|
||||
movieMetadata.Collection = movieInfo.Collection;
|
||||
movieMetadata.CollectionTmdbId = movieInfo.CollectionTmdbId;
|
||||
movieMetadata.CollectionTitle = movieInfo.CollectionTitle;
|
||||
|
||||
//movie.Genres = movieInfo.Genres;
|
||||
movieMetadata.Certification = movieInfo.Certification;
|
||||
|
|
|
@ -268,7 +268,7 @@ namespace NzbDrone.Core.Organizer
|
|||
tokenHandlers["{Movie CleanOriginalTitle}"] = m => CleanTitle(movie.MovieMetadata.Value.OriginalTitle) ?? string.Empty;
|
||||
|
||||
tokenHandlers["{Movie Certification}"] = m => movie.MovieMetadata.Value.Certification ?? string.Empty;
|
||||
tokenHandlers["{Movie Collection}"] = m => movie.MovieMetadata.Value.Collection?.Value.Title ?? string.Empty;
|
||||
tokenHandlers["{Movie Collection}"] = m => movie.MovieMetadata.Value.CollectionTitle ?? string.Empty;
|
||||
}
|
||||
|
||||
private string GetLanguageTitle(Movie movie, string isoCodes)
|
||||
|
|
|
@ -55,7 +55,8 @@ namespace NzbDrone.Core.Organizer
|
|||
{
|
||||
Title = "The Movie: Title",
|
||||
OriginalTitle = "The Original Movie Title",
|
||||
Collection = new MovieCollection { Title = "The Movie Collection", TmdbId = 123654 },
|
||||
CollectionTitle = "The Movie Collection",
|
||||
CollectionTmdbId = 123654,
|
||||
Certification = "R",
|
||||
Year = 2010,
|
||||
ImdbId = "tt0066921",
|
||||
|
|
|
@ -96,7 +96,7 @@ namespace Radarr.Api.V3.Collections
|
|||
{
|
||||
var resource = collection.ToResource();
|
||||
|
||||
foreach (var movie in _movieMetadataService.GetMoviesByCollectionId(collection.Id))
|
||||
foreach (var movie in _movieMetadataService.GetMoviesByCollectionTmdbId(collection.TmdbId))
|
||||
{
|
||||
var movieResource = movie.ToResource();
|
||||
movieResource.Folder = _fileNameBuilder.GetMovieFolder(new Movie { Title = movie.Title, Year = movie.Year, ImdbId = movie.ImdbId, TmdbId = movie.TmdbId });
|
||||
|
|
|
@ -76,8 +76,8 @@ namespace Radarr.Api.V3.ImportLists
|
|||
Genres = model.MovieMetadata.Value.Genres,
|
||||
Ratings = model.MovieMetadata.Value.Ratings,
|
||||
YouTubeTrailerId = model.MovieMetadata.Value.YouTubeTrailerId,
|
||||
Studio = model.MovieMetadata.Value.Studio,
|
||||
Collection = model.MovieMetadata.Value.Collection
|
||||
Collection = new MovieCollection { Title = model.MovieMetadata.Value.CollectionTitle, TmdbId = model.MovieMetadata.Value.CollectionTmdbId },
|
||||
Studio = model.MovieMetadata.Value.Studio
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,7 @@ namespace Radarr.Api.V3.ImportLists
|
|||
Ratings = model.MovieMetadata.Value.Ratings,
|
||||
YouTubeTrailerId = model.MovieMetadata.Value.YouTubeTrailerId,
|
||||
Studio = model.MovieMetadata.Value.Studio,
|
||||
Collection = model.MovieMetadata.Value.Collection,
|
||||
Collection = new MovieCollection { Title = model.MovieMetadata.Value.CollectionTitle, TmdbId = model.MovieMetadata.Value.CollectionTmdbId },
|
||||
Lists = new HashSet<int> { model.ListId }
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ using NzbDrone.Core.DecisionEngine.Specifications;
|
|||
using NzbDrone.Core.Languages;
|
||||
using NzbDrone.Core.MediaCover;
|
||||
using NzbDrone.Core.Movies;
|
||||
using NzbDrone.Core.Movies.Collections;
|
||||
using NzbDrone.Core.Movies.Translations;
|
||||
using NzbDrone.Core.Parser;
|
||||
using Radarr.Api.V3.MovieFiles;
|
||||
|
@ -73,7 +74,7 @@ namespace Radarr.Api.V3.Movies
|
|||
public AddMovieOptions AddOptions { get; set; }
|
||||
public Ratings Ratings { get; set; }
|
||||
public MovieFileResource MovieFile { get; set; }
|
||||
public int CollectionId { get; set; }
|
||||
public MovieCollection Collection { get; set; }
|
||||
public float Popularity { get; set; }
|
||||
}
|
||||
|
||||
|
@ -140,7 +141,7 @@ namespace Radarr.Api.V3.Movies
|
|||
MovieFile = movieFile,
|
||||
YouTubeTrailerId = model.MovieMetadata.Value.YouTubeTrailerId,
|
||||
Studio = model.MovieMetadata.Value.Studio,
|
||||
CollectionId = model.MovieMetadata.Value.CollectionId,
|
||||
Collection = new MovieCollection { Title = model.MovieMetadata.Value.CollectionTitle, TmdbId = model.MovieMetadata.Value.CollectionTmdbId },
|
||||
Popularity = model.MovieMetadata.Value.Popularity
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue