diff options
| author | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
|---|---|---|
| committer | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
| commit | 48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch) | |
| tree | 8dae77a31670a888d733484cb17dd4077d5444e8 /Emby.Naming/Video/CleanStringParser.cs | |
| parent | c32d8656382a0eacb301692e0084377fc433ae9b (diff) | |
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'Emby.Naming/Video/CleanStringParser.cs')
| -rw-r--r-- | Emby.Naming/Video/CleanStringParser.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Emby.Naming/Video/CleanStringParser.cs b/Emby.Naming/Video/CleanStringParser.cs new file mode 100644 index 000000000..bddf9589b --- /dev/null +++ b/Emby.Naming/Video/CleanStringParser.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; + +namespace Emby.Naming.Video +{ + /// <summary> + /// http://kodi.wiki/view/Advancedsettings.xml#video + /// </summary> + public class CleanStringParser + { + public CleanStringResult Clean(string name, IEnumerable<Regex> expressions) + { + var hasChanged = false; + + foreach (var exp in expressions) + { + var result = Clean(name, exp); + + if (!string.IsNullOrEmpty(result.Name)) + { + name = result.Name; + hasChanged = hasChanged || result.HasChanged; + } + } + + return new CleanStringResult + { + Name = name, + HasChanged = hasChanged + }; + } + + private CleanStringResult Clean(string name, Regex expression) + { + var result = new CleanStringResult(); + + var match = expression.Match(name); + + if (match.Success) + { + result.HasChanged = true; + name = name.Substring(0, match.Index); + } + + result.Name = name; + return result; + } + } +} |
