mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-11-17 10:58:58 -07:00
50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|