CleanStringParser.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma warning disable CS1591
  2. #pragma warning disable SA1600
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5. namespace Emby.Naming.Video
  6. {
  7. /// <summary>
  8. /// http://kodi.wiki/view/Advancedsettings.xml#video
  9. /// </summary>
  10. public class CleanStringParser
  11. {
  12. public CleanStringResult Clean(string name, IEnumerable<Regex> expressions)
  13. {
  14. var hasChanged = false;
  15. foreach (var exp in expressions)
  16. {
  17. var result = Clean(name, exp);
  18. if (!string.IsNullOrEmpty(result.Name))
  19. {
  20. name = result.Name;
  21. hasChanged = hasChanged || result.HasChanged;
  22. }
  23. }
  24. return new CleanStringResult
  25. {
  26. Name = name,
  27. HasChanged = hasChanged
  28. };
  29. }
  30. private static CleanStringResult Clean(string name, Regex expression)
  31. {
  32. var result = new CleanStringResult();
  33. var match = expression.Match(name);
  34. if (match.Success)
  35. {
  36. result.HasChanged = true;
  37. name = name.Substring(0, match.Index);
  38. }
  39. result.Name = name;
  40. return result;
  41. }
  42. }
  43. }