mirror of https://github.com/Radarr/Radarr
Update Rename Preview to support folder renaming
This commit is contained in:
parent
68f58fb37d
commit
72aac6e551
|
@ -71,8 +71,9 @@ namespace NzbDrone.Core.MediaFiles
|
||||||
{
|
{
|
||||||
MovieId = movie.Id,
|
MovieId = movie.Id,
|
||||||
MovieFileId = file.Id,
|
MovieFileId = file.Id,
|
||||||
ExistingPath = file.RelativePath,
|
ExistingPath = movieFilePath,
|
||||||
NewPath = movie.Path.GetRelativePath(newPath)
|
//NewPath = movie.Path.GetRelativePath(newPath)
|
||||||
|
NewPath = newPath
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,12 +155,11 @@ namespace NzbDrone.Core.Organizer
|
||||||
return GetOriginalTitle(movieFile);
|
return GetOriginalTitle(movieFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Update namingConfig for Movies!
|
|
||||||
var pattern = namingConfig.StandardMovieFormat;
|
var pattern = namingConfig.StandardMovieFormat;
|
||||||
var tokenHandlers = new Dictionary<string, Func<TokenMatch, string>>(FileNameBuilderTokenEqualityComparer.Instance);
|
var tokenHandlers = new Dictionary<string, Func<TokenMatch, string>>(FileNameBuilderTokenEqualityComparer.Instance);
|
||||||
|
|
||||||
AddMovieTokens(tokenHandlers, movie);
|
AddMovieTokens(tokenHandlers, movie);
|
||||||
AddReleaseDateTokens(tokenHandlers, movie.Year); //In case we want to separate the year
|
AddReleaseDateTokens(tokenHandlers, movie.Year);
|
||||||
AddImdbIdTokens(tokenHandlers, movie.ImdbId);
|
AddImdbIdTokens(tokenHandlers, movie.ImdbId);
|
||||||
AddQualityTokens(tokenHandlers, movie, movieFile);
|
AddQualityTokens(tokenHandlers, movie, movieFile);
|
||||||
AddMediaInfoTokens(tokenHandlers, movieFile);
|
AddMediaInfoTokens(tokenHandlers, movieFile);
|
||||||
|
@ -186,11 +185,37 @@ namespace NzbDrone.Core.Organizer
|
||||||
{
|
{
|
||||||
Ensure.That(extension, () => extension).IsNotNullOrWhiteSpace();
|
Ensure.That(extension, () => extension).IsNotNullOrWhiteSpace();
|
||||||
|
|
||||||
var path = movie.Path;
|
var path = BuildMoviePath(movie);
|
||||||
|
|
||||||
return Path.Combine(path, fileName + extension);
|
return Path.Combine(path, fileName + extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string BuildMoviePath(Movie movie)
|
||||||
|
{
|
||||||
|
var path = movie.Path;
|
||||||
|
var directory = new DirectoryInfo(path).Name;
|
||||||
|
var parentDirectoryPath = new DirectoryInfo(path).Parent.FullName;
|
||||||
|
var namingConfig = _namingConfigService.GetConfig();
|
||||||
|
|
||||||
|
var movieFile = movie.MovieFile;
|
||||||
|
|
||||||
|
var pattern = namingConfig.MovieFolderFormat;
|
||||||
|
var tokenHandlers = new Dictionary<string, Func<TokenMatch, string>>(FileNameBuilderTokenEqualityComparer.Instance);
|
||||||
|
|
||||||
|
AddMovieTokens(tokenHandlers, movie);
|
||||||
|
AddReleaseDateTokens(tokenHandlers, movie.Year);
|
||||||
|
AddImdbIdTokens(tokenHandlers, movie.ImdbId);
|
||||||
|
AddQualityTokens(tokenHandlers, movie, movieFile);
|
||||||
|
AddMediaInfoTokens(tokenHandlers, movieFile);
|
||||||
|
AddMovieFileTokens(tokenHandlers, movieFile);
|
||||||
|
|
||||||
|
var directoryName = ReplaceTokens(pattern, tokenHandlers, namingConfig).Trim();
|
||||||
|
directoryName = FileNameCleanupRegex.Replace(directoryName, match => match.Captures[0].Value[0].ToString());
|
||||||
|
directoryName = TrimSeparatorsRegex.Replace(directoryName, string.Empty);
|
||||||
|
|
||||||
|
return Path.Combine(parentDirectoryPath, directoryName);
|
||||||
|
}
|
||||||
|
|
||||||
public string BuildSeasonPath(Series series, int seasonNumber)
|
public string BuildSeasonPath(Series series, int seasonNumber)
|
||||||
{
|
{
|
||||||
var path = series.Path;
|
var path = series.Path;
|
||||||
|
|
|
@ -9,6 +9,7 @@ module.exports = Marionette.ItemView.extend({
|
||||||
//var type = this.model.get('seriesType');
|
//var type = this.model.get('seriesType');
|
||||||
return {
|
return {
|
||||||
rename : this.naming.get('renameEpisodes'),
|
rename : this.naming.get('renameEpisodes'),
|
||||||
|
folderFormat: this.naming.get('movieFolderFormat'),
|
||||||
format : this.naming.get('standardMovieFormat')
|
format : this.naming.get('standardMovieFormat')
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
{{#if rename}}
|
{{#if rename}}
|
||||||
|
Folder Naming pattern: {{folderFormat}}<br>
|
||||||
Naming pattern: {{format}}
|
Naming pattern: {{format}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
<div class="path-info x-path-info">All paths are relative to: <strong>{{path}}</strong></div>
|
<div class="path-info x-path-info">Your movie may be moved; see the paths below</div>
|
||||||
<div class="x-format-region"></div>
|
<div class="x-format-region"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue