aboutsummaryrefslogtreecommitdiff
path: root/Emby.Naming/Video/CleanStringParser.cs
diff options
context:
space:
mode:
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;
+ }
+ }
+}