CleanStringParser.cs 1.2 KB

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