mirror of
https://github.com/Sonarr/Sonarr
synced 2025-01-03 05:35:29 +00:00
Fixed: Reprocessing manual import items unable to detect sample
Closes #7221
This commit is contained in:
parent
ca38a9b577
commit
27da041388
1 changed files with 25 additions and 4 deletions
|
@ -155,10 +155,19 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
||||||
if (episodeIds.Any())
|
if (episodeIds.Any())
|
||||||
{
|
{
|
||||||
var downloadClientItem = GetTrackedDownload(downloadId)?.DownloadItem;
|
var downloadClientItem = GetTrackedDownload(downloadId)?.DownloadItem;
|
||||||
|
var episodes = _episodeService.GetEpisodes(episodeIds);
|
||||||
|
var finalReleaseGroup = releaseGroup.IsNullOrWhiteSpace()
|
||||||
|
? Parser.Parser.ParseReleaseGroup(path)
|
||||||
|
: releaseGroup;
|
||||||
|
var finalQuality = quality.Quality == Quality.Unknown ? QualityParser.ParseQuality(path) : quality;
|
||||||
|
var finalLanguges =
|
||||||
|
languages?.Count <= 1 && (languages?.SingleOrDefault() ?? Language.Unknown) == Language.Unknown
|
||||||
|
? languageParse
|
||||||
|
: languages;
|
||||||
|
|
||||||
var localEpisode = new LocalEpisode();
|
var localEpisode = new LocalEpisode();
|
||||||
localEpisode.Series = series;
|
localEpisode.Series = series;
|
||||||
localEpisode.Episodes = _episodeService.GetEpisodes(episodeIds);
|
localEpisode.Episodes = episodes;
|
||||||
localEpisode.FileEpisodeInfo = Parser.Parser.ParsePath(path);
|
localEpisode.FileEpisodeInfo = Parser.Parser.ParsePath(path);
|
||||||
localEpisode.DownloadClientEpisodeInfo = downloadClientItem == null ? null : Parser.Parser.ParseTitle(downloadClientItem.Title);
|
localEpisode.DownloadClientEpisodeInfo = downloadClientItem == null ? null : Parser.Parser.ParseTitle(downloadClientItem.Title);
|
||||||
localEpisode.DownloadItem = downloadClientItem;
|
localEpisode.DownloadItem = downloadClientItem;
|
||||||
|
@ -166,15 +175,27 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual
|
||||||
localEpisode.SceneSource = SceneSource(series, rootFolder);
|
localEpisode.SceneSource = SceneSource(series, rootFolder);
|
||||||
localEpisode.ExistingFile = series.Path.IsParentPath(path);
|
localEpisode.ExistingFile = series.Path.IsParentPath(path);
|
||||||
localEpisode.Size = _diskProvider.GetFileSize(path);
|
localEpisode.Size = _diskProvider.GetFileSize(path);
|
||||||
localEpisode.ReleaseGroup = releaseGroup.IsNullOrWhiteSpace() ? Parser.Parser.ParseReleaseGroup(path) : releaseGroup;
|
localEpisode.ReleaseGroup = finalReleaseGroup;
|
||||||
localEpisode.Languages = languages?.Count <= 1 && (languages?.SingleOrDefault() ?? Language.Unknown) == Language.Unknown ? languageParse : languages;
|
localEpisode.Languages = finalLanguges;
|
||||||
localEpisode.Quality = quality.Quality == Quality.Unknown ? QualityParser.ParseQuality(path) : quality;
|
localEpisode.Quality = finalQuality;
|
||||||
localEpisode.IndexerFlags = (IndexerFlags)indexerFlags;
|
localEpisode.IndexerFlags = (IndexerFlags)indexerFlags;
|
||||||
localEpisode.ReleaseType = releaseType;
|
localEpisode.ReleaseType = releaseType;
|
||||||
|
|
||||||
localEpisode.CustomFormats = _formatCalculator.ParseCustomFormat(localEpisode);
|
localEpisode.CustomFormats = _formatCalculator.ParseCustomFormat(localEpisode);
|
||||||
localEpisode.CustomFormatScore = localEpisode.Series?.QualityProfile?.Value.CalculateCustomFormatScore(localEpisode.CustomFormats) ?? 0;
|
localEpisode.CustomFormatScore = localEpisode.Series?.QualityProfile?.Value.CalculateCustomFormatScore(localEpisode.CustomFormats) ?? 0;
|
||||||
|
|
||||||
|
// Augment episode file so imported files have all additional information an automatic import would
|
||||||
|
localEpisode = _aggregationService.Augment(localEpisode, downloadClientItem);
|
||||||
|
|
||||||
|
// Reapply the user-chosen values.
|
||||||
|
localEpisode.Series = series;
|
||||||
|
localEpisode.Episodes = episodes;
|
||||||
|
localEpisode.ReleaseGroup = finalReleaseGroup;
|
||||||
|
localEpisode.Quality = finalQuality;
|
||||||
|
localEpisode.Languages = finalLanguges;
|
||||||
|
localEpisode.IndexerFlags = (IndexerFlags)indexerFlags;
|
||||||
|
localEpisode.ReleaseType = releaseType;
|
||||||
|
|
||||||
return MapItem(_importDecisionMaker.GetDecision(localEpisode, downloadClientItem), rootFolder, downloadId, null);
|
return MapItem(_importDecisionMaker.GetDecision(localEpisode, downloadClientItem), rootFolder, downloadId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue