2015-12-25 09:22:00 +00:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using NLog;
|
|
|
|
using NzbDrone.Common.Disk;
|
|
|
|
using NzbDrone.Common.Extensions;
|
|
|
|
using NzbDrone.Core.Configuration;
|
|
|
|
using NzbDrone.Core.Extras.Files;
|
|
|
|
using NzbDrone.Core.MediaFiles;
|
2018-03-14 20:41:36 +00:00
|
|
|
using NzbDrone.Core.Movies;
|
2015-12-25 09:22:00 +00:00
|
|
|
|
|
|
|
namespace NzbDrone.Core.Extras.Others
|
|
|
|
{
|
|
|
|
public class OtherExtraService : ExtraFileManager<OtherExtraFile>
|
|
|
|
{
|
|
|
|
private readonly IOtherExtraFileService _otherExtraFileService;
|
2019-10-07 16:40:48 +00:00
|
|
|
private readonly IMediaFileAttributeService _mediaFileAttributeService;
|
2015-12-25 09:22:00 +00:00
|
|
|
|
|
|
|
public OtherExtraService(IConfigService configService,
|
2018-02-15 12:39:01 +00:00
|
|
|
IDiskProvider diskProvider,
|
2015-12-25 09:22:00 +00:00
|
|
|
IDiskTransferService diskTransferService,
|
|
|
|
IOtherExtraFileService otherExtraFileService,
|
2019-10-07 16:40:48 +00:00
|
|
|
IMediaFileAttributeService mediaFileAttributeService,
|
2015-12-25 09:22:00 +00:00
|
|
|
Logger logger)
|
2018-02-15 12:39:01 +00:00
|
|
|
: base(configService, diskProvider, diskTransferService, logger)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
|
|
|
_otherExtraFileService = otherExtraFileService;
|
2019-10-07 16:40:48 +00:00
|
|
|
_mediaFileAttributeService = mediaFileAttributeService;
|
2015-12-25 09:22:00 +00:00
|
|
|
}
|
|
|
|
|
2016-12-09 06:54:15 +00:00
|
|
|
public override int Order => 2;
|
2015-12-25 09:22:00 +00:00
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
public override IEnumerable<ExtraFile> CreateAfterMovieScan(Movie movie, List<MovieFile> movieFiles)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
|
|
|
return Enumerable.Empty<ExtraFile>();
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
public override IEnumerable<ExtraFile> CreateAfterMovieImport(Movie movie, MovieFile movieFile)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
|
|
|
return Enumerable.Empty<ExtraFile>();
|
|
|
|
}
|
|
|
|
|
2018-04-01 19:48:22 +00:00
|
|
|
public override IEnumerable<ExtraFile> CreateAfterMovieImport(Movie movie, string movieFolder)
|
|
|
|
{
|
|
|
|
return Enumerable.Empty<ExtraFile>();
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
public override IEnumerable<ExtraFile> MoveFilesAfterRename(Movie movie, List<MovieFile> movieFiles)
|
2019-12-22 21:24:11 +00:00
|
|
|
{
|
2018-02-15 12:39:01 +00:00
|
|
|
var extraFiles = _otherExtraFileService.GetFilesByMovie(movie.Id);
|
2015-12-25 09:22:00 +00:00
|
|
|
var movedFiles = new List<OtherExtraFile>();
|
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
foreach (var movieFile in movieFiles)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
2018-02-15 12:39:01 +00:00
|
|
|
var extraFilesForMovieFile = extraFiles.Where(m => m.MovieFileId == movieFile.Id).ToList();
|
2015-12-25 09:22:00 +00:00
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
foreach (var extraFile in extraFilesForMovieFile)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
2018-02-15 12:39:01 +00:00
|
|
|
movedFiles.AddIfNotNull(MoveFile(movie, movieFile, extraFile));
|
2015-12-25 09:22:00 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_otherExtraFileService.Upsert(movedFiles);
|
|
|
|
|
|
|
|
return movedFiles;
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:39:01 +00:00
|
|
|
public override ExtraFile Import(Movie movie, MovieFile movieFile, string path, string extension, bool readOnly)
|
2015-12-25 09:22:00 +00:00
|
|
|
{
|
2018-02-15 12:39:01 +00:00
|
|
|
var extraFile = ImportFile(movie, movieFile, path, readOnly, extension, null);
|
2015-12-25 09:22:00 +00:00
|
|
|
|
2019-10-07 16:40:48 +00:00
|
|
|
_mediaFileAttributeService.SetFilePermissions(path);
|
2015-12-25 09:22:00 +00:00
|
|
|
_otherExtraFileService.Upsert(extraFile);
|
|
|
|
|
|
|
|
return extraFile;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|