Add file creation DateTime to naming templates
typo
This commit is contained in:
parent
f72551fa9a
commit
9309aea6d9
@ -41,8 +41,9 @@ namespace LibationFileManager
|
||||
public static TemplateTags Locale { get; } = new TemplateTags("locale", "Region/country");
|
||||
public static TemplateTags YearPublished { get; } = new TemplateTags("year", "Year published");
|
||||
|
||||
// Special case. Isn't mapped to a replacement in Templates.cs
|
||||
// Special cases. Aren't mapped to replacements in Templates.cs
|
||||
// Included here for display by EditTemplateDialog
|
||||
public static TemplateTags Date { get; } = new TemplateTags("date[...]", "File date/time. e.g. yyyy-MM-dd HH-mm");
|
||||
public static TemplateTags IfSeries { get; } = new TemplateTags("if series->...<-if series", "Only include if part of a series");
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,6 +105,7 @@ namespace LibationFileManager
|
||||
: getFileNamingTemplate(libraryBookDto, template, null, fileExtension)
|
||||
.GetFilePath(Configuration.Instance.ReplacementCharacters, fileExtension).PathWithoutPrefix;
|
||||
|
||||
private static Regex dateFormatRegex { get; } = new Regex(@"<date\[(.*?)\]>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
||||
private static Regex ifSeriesRegex { get; } = new Regex("<if series->(.*?)<-if series>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
||||
|
||||
internal static FileNamingTemplate getFileNamingTemplate(LibraryBookDto libraryBookDto, string template, string dirFullPath, string extension)
|
||||
@ -120,6 +121,8 @@ namespace LibationFileManager
|
||||
template,
|
||||
string.IsNullOrWhiteSpace(libraryBookDto.SeriesName) ? "" : "$1");
|
||||
|
||||
template = dateFormatRegex.Replace(template, dateMatchEvaluator);
|
||||
|
||||
var t = template + FileUtility.GetStandardizedExtension(extension);
|
||||
var fullfilename = dirFullPath == "" ? t : Path.Combine(dirFullPath, t);
|
||||
|
||||
@ -148,6 +151,18 @@ namespace LibationFileManager
|
||||
}
|
||||
#endregion
|
||||
|
||||
private static string dateMatchEvaluator(Match match)
|
||||
{
|
||||
try
|
||||
{
|
||||
return DateTime.Now.ToString(match.Groups[1].Value);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return match.Value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual IEnumerable<TemplateTags> GetTemplateTags()
|
||||
=> TemplateTags.GetAll()
|
||||
// yeah, this line is a little funky but it works when you think through it. also: trust the unit tests
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user