|
|
|
@ -25,7 +25,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
|
|
|
|
{
|
|
|
|
|
List<ManualImportItem> GetMediaFiles(int seriesId, int? seasonNumber);
|
|
|
|
|
List<ManualImportItem> GetMediaFiles(string path, string downloadId, int? seriesId, bool filterExistingFiles);
|
|
|
|
|
ManualImportItem ReprocessItem(string path, string downloadId, int seriesId, int? seasonNumber, List<int> episodeIds, string releaseGroup, QualityModel quality, List<Language> languages, int indexerFlags);
|
|
|
|
|
ManualImportItem ReprocessItem(string path, string downloadId, int seriesId, int? seasonNumber, List<int> episodeIds, string releaseGroup, QualityModel quality, List<Language> languages, int indexerFlags, ReleaseType releaseType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ManualImportService : IExecute<ManualImportCommand>, IManualImportService
|
|
|
|
@ -139,7 +139,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
|
|
|
|
return ProcessFolder(path, path, downloadId, seriesId, filterExistingFiles);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ManualImportItem ReprocessItem(string path, string downloadId, int seriesId, int? seasonNumber, List<int> episodeIds, string releaseGroup, QualityModel quality, List<Language> languages, int indexerFlags)
|
|
|
|
|
public ManualImportItem ReprocessItem(string path, string downloadId, int seriesId, int? seasonNumber, List<int> episodeIds, string releaseGroup, QualityModel quality, List<Language> languages, int indexerFlags, ReleaseType releaseType)
|
|
|
|
|
{
|
|
|
|
|
var rootFolder = Path.GetDirectoryName(path);
|
|
|
|
|
var series = _seriesService.GetSeries(seriesId);
|
|
|
|
@ -169,9 +169,11 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
|
|
|
|
localEpisode.ReleaseGroup = releaseGroup.IsNullOrWhiteSpace() ? Parser.Parser.ParseReleaseGroup(path) : releaseGroup;
|
|
|
|
|
localEpisode.Languages = languages?.Count <= 1 && (languages?.SingleOrDefault() ?? Language.Unknown) == Language.Unknown ? languageParse : languages;
|
|
|
|
|
localEpisode.Quality = quality.Quality == Quality.Unknown ? QualityParser.ParseQuality(path) : quality;
|
|
|
|
|
localEpisode.IndexerFlags = (IndexerFlags)indexerFlags;
|
|
|
|
|
localEpisode.ReleaseType = releaseType;
|
|
|
|
|
|
|
|
|
|
localEpisode.CustomFormats = _formatCalculator.ParseCustomFormat(localEpisode);
|
|
|
|
|
localEpisode.CustomFormatScore = localEpisode.Series?.QualityProfile?.Value.CalculateCustomFormatScore(localEpisode.CustomFormats) ?? 0;
|
|
|
|
|
localEpisode.IndexerFlags = (IndexerFlags)indexerFlags;
|
|
|
|
|
|
|
|
|
|
return MapItem(_importDecisionMaker.GetDecision(localEpisode, downloadClientItem), rootFolder, downloadId, null);
|
|
|
|
|
}
|
|
|
|
@ -199,7 +201,8 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
|
|
|
|
ReleaseGroup = releaseGroup.IsNullOrWhiteSpace() ? Parser.Parser.ParseReleaseGroup(path) : releaseGroup,
|
|
|
|
|
Languages = languages?.Count <= 1 && (languages?.SingleOrDefault() ?? Language.Unknown) == Language.Unknown ? LanguageParser.ParseLanguages(path) : languages,
|
|
|
|
|
Quality = quality.Quality == Quality.Unknown ? QualityParser.ParseQuality(path) : quality,
|
|
|
|
|
IndexerFlags = (IndexerFlags)indexerFlags
|
|
|
|
|
IndexerFlags = (IndexerFlags)indexerFlags,
|
|
|
|
|
ReleaseType = releaseType
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return MapItem(new ImportDecision(localEpisode, new Rejection("Episodes not selected")), rootFolder, downloadId, null);
|
|
|
|
|