jellyfin/Emby.Naming/Video/CleanStringParser.cs
Bond_009 5a8e972952 Enable TreatWarningsAsErrors for some projects
Analyzers are only run in debug build, so setting TreatWarningsAsErrors
for release build will catch the compiler warnings until we resolve all
analyzer warnings.
2019-12-13 20:11:37 +01:00

52 lines
1.3 KiB
C#

#pragma warning disable CS1591
#pragma warning disable SA1600
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 static 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;
}
}
}