mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-06 19:37:55 +02:00
52 lines
1.3 KiB
C#
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>
|
|
/// <see href="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;
|
|
}
|
|
}
|
|
}
|