Merge branch 'develop' into MovieEditorFixes

geogolem 8 years ago committed by GitHub
commit d03ee006fc

@ -49,7 +49,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation.Proxies
{ {
if (retries == 5) if (retries == 5)
{ {
throw new DownloadClientException("Try to process same request more than 5 times"); throw new DownloadClientException("Try to process request to {0} with {1} more than 5 times", api, arguments.ToJson().ToString());
} }
if (!_authenticated && api != DiskStationApi.Info && api != DiskStationApi.DSMInfo) if (!_authenticated && api != DiskStationApi.Info && api != DiskStationApi.DSMInfo)
@ -72,14 +72,20 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation.Proxies
} }
else else
{ {
var msg = $"Failed to {operation}. Reason: {responseContent.Error.GetMessage(api)}";
_logger.Error(msg);
if (responseContent.Error.SessionError) if (responseContent.Error.SessionError)
{ {
_authenticated = false; _authenticated = false;
return ProcessRequest<T>(api, arguments, settings, operation, method, retries++);
if (responseContent.Error.Code == 105)
{
throw new DownloadClientAuthenticationException(msg);
} }
var msg = $"Failed to {operation}. Reason: {responseContent.Error.GetMessage(api)}"; return ProcessRequest<T>(api, arguments, settings, operation, method, ++retries);
_logger.Error(msg); }
throw new DownloadClientException(msg); throw new DownloadClientException(msg);
} }

@ -282,7 +282,17 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
try try
{ {
var downloadDir = GetDownloadDirectory(); var downloadDir = GetDefaultDir();
if (downloadDir == null)
{
return new NzbDroneValidationFailure(nameof(Settings.TvDirectory), "No default destination")
{
DetailedDescription = $"You must login into your Diskstation as {Settings.Username} and manually set it up into DownloadStation settings under BT/HTTP/FTP/NZB -> Location."
};
}
downloadDir = GetDownloadDirectory();
if (downloadDir != null) if (downloadDir != null)
{ {
@ -295,7 +305,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist") return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist")
{ {
DetailedDescription = $"The DownloadStation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?" DetailedDescription = $"The Diskstation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?"
}; };
} }
@ -310,6 +320,11 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
return null; return null;
} }
catch (DownloadClientAuthenticationException ex) // User could not have permission to access to downloadstation
{
_logger.Error(ex);
return new NzbDroneValidationFailure(string.Empty, ex.Message);
}
catch (Exception ex) catch (Exception ex)
{ {
_logger.Error(ex); _logger.Error(ex);

@ -195,7 +195,17 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
try try
{ {
var downloadDir = GetDownloadDirectory(); var downloadDir = GetDefaultDir();
if (downloadDir == null)
{
return new NzbDroneValidationFailure(nameof(Settings.TvDirectory), "No default destination")
{
DetailedDescription = $"You must login into your Diskstation as {Settings.Username} and manually set it up into DownloadStation settings under BT/HTTP/FTP/NZB -> Location."
};
}
downloadDir = GetDownloadDirectory();
if (downloadDir != null) if (downloadDir != null)
{ {
@ -208,7 +218,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist") return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist")
{ {
DetailedDescription = $"The DownloadStation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?" DetailedDescription = $"The Diskstation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?"
}; };
} }
@ -223,6 +233,11 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
return null; return null;
} }
catch (DownloadClientAuthenticationException ex) // User could not have permission to access to downloadstation
{
_logger.Error(ex);
return new NzbDroneValidationFailure(string.Empty, ex.Message);
}
catch (Exception ex) catch (Exception ex)
{ {
_logger.Error(ex); _logger.Error(ex);

@ -36,42 +36,34 @@ namespace NzbDrone.Core.MediaFiles
_logger = logger; _logger = logger;
} }
public MovieFileMoveResult UpgradeMovieFile(MovieFile episodeFile, LocalMovie localEpisode, bool copyOnly = false) public MovieFileMoveResult UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, bool copyOnly = false)
{ {
_logger.Trace("Upgrading existing episode file."); _logger.Trace("Upgrading existing movie file.");
var moveFileResult = new MovieFileMoveResult(); var moveFileResult = new MovieFileMoveResult();
localEpisode.Movie.MovieFile.LazyLoad();
var existingFile = localEpisode.Movie.MovieFile;
existingFile.LazyLoad();
if (existingFile.IsLoaded && existingFile.Value != null) var existingFile = localMovie.Movie.MovieFile.Value;
{
var file = existingFile.Value;
var episodeFilePath = Path.Combine(localEpisode.Movie.Path, file.RelativePath);
if (_diskProvider.FileExists(episodeFilePath)) if (existingFile != null)
{ {
_logger.Debug("Removing existing episode file: {0}", file); var movieFilePath = Path.Combine(localMovie.Movie.Path, existingFile.RelativePath);
_recycleBinProvider.DeleteFile(episodeFilePath);
}
moveFileResult.OldFiles.Add(file); if (_diskProvider.FileExists(movieFilePath))
_mediaFileService.Delete(file, DeleteMediaFileReason.Upgrade);
}
else
{ {
//_logger.Warn("The existing movie file was not lazy loaded."); _logger.Debug("Removing existing movie file: {0}", existingFile);
_recycleBinProvider.DeleteFile(movieFilePath);
} }
moveFileResult.OldFiles.Add(existingFile);
_mediaFileService.Delete(existingFile, DeleteMediaFileReason.Upgrade);
}
if (copyOnly) if (copyOnly)
{ {
moveFileResult.MovieFile = _movieFileMover.CopyMovieFile(episodeFile, localEpisode); moveFileResult.MovieFile = _movieFileMover.CopyMovieFile(movieFile, localMovie);
} }
else else
{ {
moveFileResult.MovieFile= _movieFileMover.MoveMovieFile(episodeFile, localEpisode); moveFileResult.MovieFile = _movieFileMover.MoveMovieFile(movieFile, localMovie);
} }
return moveFileResult; return moveFileResult;

@ -31,17 +31,17 @@ namespace NzbDrone.Core.Notifications.CustomScript
{ {
var movie = message.Movie; var movie = message.Movie;
var remoteMovie = message.RemoteMovie; var remoteMovie = message.RemoteMovie;
var releaseGroup = remoteMovie.ParsedMovieInfo.ReleaseGroup;
var environmentVariables = new StringDictionary(); var environmentVariables = new StringDictionary();
environmentVariables.Add("Radarr_EventType", "Grab"); environmentVariables.Add("Radarr_EventType", "Grab");
environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString()); environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
environmentVariables.Add("Radarr_Movie_Title", movie.Title); environmentVariables.Add("Radarr_Movie_Title", movie.Title);
environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId.ToString()); environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId);
environmentVariables.Add("Radarr_Movie_TmdbId", movie.TmdbId.ToString());
environmentVariables.Add("Radarr_Release_Title", remoteMovie.Release.Title); environmentVariables.Add("Radarr_Release_Title", remoteMovie.Release.Title);
environmentVariables.Add("Radarr_Release_Indexer", remoteMovie.Release.Indexer); environmentVariables.Add("Radarr_Release_Indexer", remoteMovie.Release.Indexer);
environmentVariables.Add("Radarr_Release_Size", remoteMovie.Release.Size.ToString()); environmentVariables.Add("Radarr_Release_Size", remoteMovie.Release.Size.ToString());
environmentVariables.Add("Radarr_Release_ReleaseGroup", releaseGroup); environmentVariables.Add("Radarr_Release_ReleaseGroup", remoteMovie.ParsedMovieInfo.ReleaseGroup ?? string.Empty);
ExecuteScript(environmentVariables); ExecuteScript(environmentVariables);
} }
@ -57,7 +57,8 @@ namespace NzbDrone.Core.Notifications.CustomScript
environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString()); environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
environmentVariables.Add("Radarr_Movie_Title", movie.Title); environmentVariables.Add("Radarr_Movie_Title", movie.Title);
environmentVariables.Add("Radarr_Movie_Path", movie.Path); environmentVariables.Add("Radarr_Movie_Path", movie.Path);
environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId.ToString()); environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId);
environmentVariables.Add("Radarr_Movie_TmdbId", movie.TmdbId.ToString());
environmentVariables.Add("Radarr_MovieFile_Id", movieFile.Id.ToString()); environmentVariables.Add("Radarr_MovieFile_Id", movieFile.Id.ToString());
environmentVariables.Add("Radarr_MovieFile_RelativePath", movieFile.RelativePath); environmentVariables.Add("Radarr_MovieFile_RelativePath", movieFile.RelativePath);
environmentVariables.Add("Radarr_MovieFile_Path", Path.Combine(movie.Path, movieFile.RelativePath)); environmentVariables.Add("Radarr_MovieFile_Path", Path.Combine(movie.Path, movieFile.RelativePath));
@ -79,7 +80,9 @@ namespace NzbDrone.Core.Notifications.CustomScript
environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString()); environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
environmentVariables.Add("Radarr_Movie_Title", movie.Title); environmentVariables.Add("Radarr_Movie_Title", movie.Title);
environmentVariables.Add("Radarr_Movie_Path", movie.Path); environmentVariables.Add("Radarr_Movie_Path", movie.Path);
environmentVariables.Add("Radarr_Movie_TvdbId", movie.ImdbId.ToString()); environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId);
environmentVariables.Add("Radarr_Movie_TmdbId", movie.TmdbId.ToString());
ExecuteScript(environmentVariables); ExecuteScript(environmentVariables);
} }

@ -5,8 +5,12 @@ var PosterCollectionView = require('./Posters/SeriesPostersCollectionView');
var ListCollectionView = require('./Overview/SeriesOverviewCollectionView'); var ListCollectionView = require('./Overview/SeriesOverviewCollectionView');
var EmptyView = require('./EmptyView'); var EmptyView = require('./EmptyView');
var MoviesCollection = require('../MoviesCollection'); var MoviesCollection = require('../MoviesCollection');
var FullMovieCollection = require('../FullMovieCollection'); var FullMovieCollection = require('../FullMovieCollection');
var InCinemasCell = require('../../Cells/InCinemasCell'); var InCinemasCell = require('../../Cells/InCinemasCell');
var RelativeDateCell = require('../../Cells/RelativeDateCell');
var MovieTitleCell = require('../../Cells/MovieTitleCell'); var MovieTitleCell = require('../../Cells/MovieTitleCell');
var TemplatedCell = require('../../Cells/TemplatedCell'); var TemplatedCell = require('../../Cells/TemplatedCell');
var ProfileCell = require('../../Cells/ProfileCell'); var ProfileCell = require('../../Cells/ProfileCell');
@ -52,6 +56,11 @@ module.exports = Marionette.Layout.extend({
cell : MovieTitleCell, cell : MovieTitleCell,
cellValue : 'this', cellValue : 'this',
}, },
{
name : 'added',
label : 'Date Added',
cell : RelativeDateCell
},
{ {
name : "downloadedQuality", name : "downloadedQuality",
label : "Downloaded", label : "Downloaded",
@ -66,7 +75,7 @@ module.exports = Marionette.Layout.extend({
{ {
name : 'inCinemas', name : 'inCinemas',
label : 'In Cinemas', label : 'In Cinemas',
cell : InCinemasCell cell : RelativeDateCell
}, },
{ {
name : 'this', name : 'this',

@ -37,7 +37,9 @@
<div class="col-md-8 col-xs-8"> <div class="col-md-8 col-xs-8">
<span class="label label-default">{{GetStatus}}</span> <span class="label label-default">{{GetStatus}}</span>
<span class="label label-default">{{ShortDate inCinemas}}</span> {{#if inCinemas}}
<span class="label label-default">{{RelativeDate inCinemas}}</span>
{{/if}}
{{profile profileId}} {{profile profileId}}

@ -4,7 +4,6 @@ var MoviesCollection = require('./MoviesCollection');
var FullMovieCollection = require("./FullMovieCollection"); var FullMovieCollection = require("./FullMovieCollection");
var MoviesIndexLayout = require('./Index/MoviesIndexLayout'); var MoviesIndexLayout = require('./Index/MoviesIndexLayout');
var MoviesDetailsLayout = require('./Details/MoviesDetailsLayout'); var MoviesDetailsLayout = require('./Details/MoviesDetailsLayout');
var SeriesDetailsLayout = require('../Series/Details/SeriesDetailsLayout');
module.exports = NzbDroneController.extend({ module.exports = NzbDroneController.extend({
_originalInit : NzbDroneController.prototype.initialize, _originalInit : NzbDroneController.prototype.initialize,
@ -23,14 +22,23 @@ module.exports = NzbDroneController.extend({
}, },
seriesDetails : function(query) { seriesDetails : function(query) {
var series = FullMovieCollection.where({ titleSlug : query });
if (series.length !== 0) { if(FullMovieCollection.length > 0) {
var targetMovie = series[0]; this._renderMovieDetails(query);
console.log(AppLayout.mainRegion); } else {
this.listenTo(FullMovieCollection, 'sync', function(model, options) {
this._renderMovieDetails(query);
});
}
},
_renderMovieDetails: function(query) {
var movies = FullMovieCollection.where({ titleSlug : query });
if (movies.length !== 0) {
var targetMovie = movies[0];
this.setTitle(targetMovie.get('title')); this.setTitle(targetMovie.get('title'));
//this.showNotFound();
//this.showMainRegion(new SeriesDetailsLayout({model : targetMovie}));
this.showMainRegion(new MoviesDetailsLayout({ model : targetMovie })); this.showMainRegion(new MoviesDetailsLayout({ model : targetMovie }));
} else { } else {
this.showNotFound(); this.showNotFound();

Loading…
Cancel
Save