public void remove_slashes() { var fileNamingTemplate = new FileNamingTemplate(@"\foo\<title>.txt"); fileNamingTemplate.AddParameterReplacement("title", @"s\l/a\s/h\e/s"); fileNamingTemplate.GetFilePath().Should().Be(@"\foo\slashes.txt"); }
public static string DefaultMultipartFilename(MultiConvertFileProperties multiConvertFileProperties) { var template = Path.ChangeExtension(multiConvertFileProperties.OutputFileName, null) + " - <ch# 0> - <title>" + Path.GetExtension(multiConvertFileProperties.OutputFileName); var fileNamingTemplate = new FileNamingTemplate(template) { IllegalCharacterReplacements = " " }; fileNamingTemplate.AddParameterReplacement("ch# 0", FileUtility.GetSequenceFormatted(multiConvertFileProperties.PartsPosition, multiConvertFileProperties.PartsTotal)); fileNamingTemplate.AddParameterReplacement("title", multiConvertFileProperties.Title ?? ""); return(fileNamingTemplate.GetFilePath()); }
private static string NEW_GetValidFilename_FileNamingTemplate(string dirFullPath, string filename, string extension, string metadataSuffix) { var template = $"<title> [<id>]"; var fullfilename = Path.Combine(dirFullPath, template + FileUtility.GetStandardizedExtension(extension)); var fileNamingTemplate = new FileNamingTemplate(fullfilename) { IllegalCharacterReplacements = "_" }; fileNamingTemplate.AddParameterReplacement("title", filename); fileNamingTemplate.AddParameterReplacement("id", metadataSuffix); return(fileNamingTemplate.GetFilePath()); }
private static string NEW_GetMultipartFileName_FileNamingTemplate(string originalPath, int partsPosition, int partsTotal, string suffix) { // 1-9 => 1-9 // 10-99 => 01-99 // 100-999 => 001-999 var chapterCountLeadingZeros = partsPosition.ToString().PadLeft(partsTotal.ToString().Length, '0'); var t = Path.ChangeExtension(originalPath, null) + " - <chapter> - <title>" + Path.GetExtension(originalPath); var fileNamingTemplate = new FileNamingTemplate(t) { IllegalCharacterReplacements = " " }; fileNamingTemplate.AddParameterReplacement("chapter", chapterCountLeadingZeros); fileNamingTemplate.AddParameterReplacement("title", suffix); return(fileNamingTemplate.GetFilePath()); }
internal static FileNamingTemplate getFileNamingTemplate(LibraryBookDto libraryBookDto, string template, string dirFullPath, string extension) { ArgumentValidator.EnsureNotNullOrWhiteSpace(template, nameof(template)); ArgumentValidator.EnsureNotNull(libraryBookDto, nameof(libraryBookDto)); dirFullPath = dirFullPath?.Trim() ?? ""; // for non-series, remove <if series-> and <-if series> tags and everything in between // for series, remove <if series-> and <-if series> tags, what's in between will remain template = ifSeriesRegex.Replace( template, string.IsNullOrWhiteSpace(libraryBookDto.SeriesName) ? "" : "$1"); var t = template + FileUtility.GetStandardizedExtension(extension); var fullfilename = dirFullPath == "" ? t : Path.Combine(dirFullPath, t); var fileNamingTemplate = new FileNamingTemplate(fullfilename) { IllegalCharacterReplacements = "_" }; var title = libraryBookDto.Title ?? ""; var titleShort = title.IndexOf(':') < 1 ? title : title.Substring(0, title.IndexOf(':')); fileNamingTemplate.AddParameterReplacement(TemplateTags.Id, libraryBookDto.AudibleProductId); fileNamingTemplate.AddParameterReplacement(TemplateTags.Title, title); fileNamingTemplate.AddParameterReplacement(TemplateTags.TitleShort, titleShort); fileNamingTemplate.AddParameterReplacement(TemplateTags.Author, libraryBookDto.AuthorNames); fileNamingTemplate.AddParameterReplacement(TemplateTags.FirstAuthor, libraryBookDto.FirstAuthor); fileNamingTemplate.AddParameterReplacement(TemplateTags.Narrator, libraryBookDto.NarratorNames); fileNamingTemplate.AddParameterReplacement(TemplateTags.FirstNarrator, libraryBookDto.FirstNarrator); fileNamingTemplate.AddParameterReplacement(TemplateTags.Series, libraryBookDto.SeriesName); fileNamingTemplate.AddParameterReplacement(TemplateTags.SeriesNumber, libraryBookDto.SeriesNumber); fileNamingTemplate.AddParameterReplacement(TemplateTags.Account, libraryBookDto.Account); fileNamingTemplate.AddParameterReplacement(TemplateTags.Locale, libraryBookDto.Locale); return(fileNamingTemplate); }
public static void AddParameterReplacement(this FileNamingTemplate fileNamingTemplate, TemplateTags templateTags, object value) => fileNamingTemplate.AddParameterReplacement(templateTags.TagName, value);