aboutsummaryrefslogtreecommitdiff
path: root/Emby.Naming/Video/CleanStringParser.cs
diff options
context:
space:
mode:
authorstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
committerstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
commit48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch)
tree8dae77a31670a888d733484cb17dd4077d5444e8 /Emby.Naming/Video/CleanStringParser.cs
parentc32d8656382a0eacb301692e0084377fc433ae9b (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.cs49
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;
+ }
+ }
+}