From 942f28023d46fab037058a22fcf305a533bb5373 Mon Sep 17 00:00:00 2001 From: sr55 Date: Sat, 10 Nov 2018 14:18:12 +0000 Subject: [PATCH] WinGui: Make the Autoname macros case-insensitive. Fixes #1670 --- win/CS/HandBrakeWPF/Constants.cs | 68 +++---------------- .../Extensions/StringExtensions.cs | 9 ++- win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs | 21 +++--- 3 files changed, 24 insertions(+), 74 deletions(-) diff --git a/win/CS/HandBrakeWPF/Constants.cs b/win/CS/HandBrakeWPF/Constants.cs index f13d8cb0f..20133278d 100644 --- a/win/CS/HandBrakeWPF/Constants.cs +++ b/win/CS/HandBrakeWPF/Constants.cs @@ -14,84 +14,32 @@ namespace HandBrakeWPF /// public class Constants { - /// - /// The appcast 64. - /// + /* Appcast URLs */ public const string Appcast64 = "https://handbrake.fr/appcast.x86_64.xml"; - - /// - /// The appcast 32. - /// public const string AppcastUnstable64 = "https://handbrake.fr/appcast_unstable.x86_64.xml"; - /// - /// The any. - /// + /* Languages */ public const string Any = "(Any)"; - - /// - /// Undefined Language - /// public const string Undefined = "und"; - /// - /// The chapters. - /// + /* Autoname Contanstants */ public const string Chapters = "{chapters}"; - - /// - /// The title. - /// public const string Title = "{title}"; - - /// - /// The quality. - /// public const string Quality = "{quality}"; - - /// - /// The creation date of the new output file. - /// public const string Date = "{date}"; - - /// - /// The creation time of the new output file. - /// public const string Time = "{time}"; - - /// - /// The source creation date. - /// public const string CretaionDate = "{creation-date}"; - - /// - /// The source creation time. - /// public const string CreationTime = "{creation-time}"; - - /// - /// The bitrate. - /// public const string Bitrate = "{bitrate}"; - - /// - /// The preset. - /// public const string Preset = "{preset}"; + public const string Source = "{source}"; - /// - /// Preset Major Version - /// - public const string PresetVersionMajor = "11"; + public const string SourcePath = "{source_path}"; + public const string SourceFolderName = "{source_folder_name}"; - /// - /// Preset Minor Version - /// + /* Preset Versions */ + public const string PresetVersionMajor = "11"; public const string PresetVersionMinor = "0"; - - /// - /// Preset Micro Version - /// public const string PresetVersionMicro = "0"; public const string FileScanMru = "FileScanMru"; diff --git a/win/CS/HandBrakeWPF/Extensions/StringExtensions.cs b/win/CS/HandBrakeWPF/Extensions/StringExtensions.cs index cf7e507aa..220d6f14d 100644 --- a/win/CS/HandBrakeWPF/Extensions/StringExtensions.cs +++ b/win/CS/HandBrakeWPF/Extensions/StringExtensions.cs @@ -10,10 +10,8 @@ namespace HandBrakeWPF.Extensions { using System.Globalization; + using System.Text.RegularExpressions; - /// - /// String Extensions - /// public static class StringExtensions { /// @@ -36,5 +34,10 @@ namespace HandBrakeWPF.Extensions return 0; } + + public static string RegexReplace(this string input, string pattern, string repacelement) + { + return Regex.Replace(input, pattern, repacelement, RegexOptions.IgnoreCase); + } } } diff --git a/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs b/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs index 4fd7ec1fc..0b000eff7 100644 --- a/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs +++ b/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs @@ -59,7 +59,6 @@ namespace HandBrakeWPF.Helpers { // Get the Source Name and remove any invalid characters string sourceName = Path.GetInvalidFileNameChars().Aggregate(sourceOrLabelName, (current, character) => current.Replace(character.ToString(), string.Empty)); - // string sanitisedPresetName = presetName != null ? Path.GetInvalidFileNameChars().Aggregate(presetName.Name, (current, character) => current.Replace(character.ToString(), string.Empty)) : string.Empty; // Remove Underscores if (userSettingService.GetUserSetting(UserSettingConstants.AutoNameRemoveUnderscore)) @@ -124,14 +123,14 @@ namespace HandBrakeWPF.Helpers { destinationFilename = userSettingService.GetUserSetting(UserSettingConstants.AutoNameFormat); destinationFilename = - destinationFilename.Replace("{source}", sourceName) - .Replace(Constants.Title, dvdTitle) - .Replace(Constants.Chapters, combinedChapterTag) - .Replace(Constants.Date, DateTime.Now.Date.ToShortDateString().Replace('/', '-')) - .Replace(Constants.Time, DateTime.Now.ToString("HH-mm")) - .Replace(Constants.CretaionDate, createDate) - .Replace(Constants.CreationTime, createTime); - // .Replace(Constants.Preset, sanitisedPresetName); + destinationFilename + .RegexReplace(Constants.Source, sourceName) + .RegexReplace(Constants.Title, dvdTitle) + .RegexReplace(Constants.Chapters, combinedChapterTag) + .RegexReplace(Constants.Date, DateTime.Now.Date.ToShortDateString().Replace('/', '-')) + .RegexReplace(Constants.Time, DateTime.Now.ToString("HH-mm")) + .RegexReplace(Constants.CretaionDate, createDate) + .RegexReplace(Constants.CreationTime, createTime); if (task.VideoEncodeRateType == VideoEncodeRateType.ConstantQuality) { @@ -248,8 +247,8 @@ namespace HandBrakeWPF.Helpers } // If there is an auto name path, use it... - return userSettingService.GetUserSetting(UserSettingConstants.AutoNamePath).Trim().StartsWith("{source_path}") || - (userSettingService.GetUserSetting(UserSettingConstants.AutoNamePath).Contains("{source_folder_name}") || + return userSettingService.GetUserSetting(UserSettingConstants.AutoNamePath).Trim().StartsWith(Constants.SourcePath) || + (userSettingService.GetUserSetting(UserSettingConstants.AutoNamePath).Contains(Constants.SourceFolderName) || Directory.Exists(userSettingService.GetUserSetting(UserSettingConstants.AutoNamePath).Trim())); } } -- 2.40.0