using System; using System.Text.RegularExpressions; namespace Emby.Server.Implementations.Library { /// /// Class providing extension methods for working with paths. /// public static class PathExtensions { /// /// Gets the attribute value. /// /// The STR. /// The attrib. /// System.String. /// attrib public static string GetAttributeValue(this string str, string attrib) { if (string.IsNullOrEmpty(str)) { throw new ArgumentNullException(nameof(str)); } if (string.IsNullOrEmpty(attrib)) { throw new ArgumentNullException(nameof(attrib)); } string srch = "[" + attrib + "="; int start = str.IndexOf(srch, StringComparison.OrdinalIgnoreCase); if (start > -1) { start += srch.Length; int end = str.IndexOf(']', start); return str.Substring(start, end - start); } // for imdbid we also accept pattern matching if (string.Equals(attrib, "imdbid", StringComparison.OrdinalIgnoreCase)) { var m = Regex.Match(str, "tt\\d{7,8}", RegexOptions.IgnoreCase); return m.Success ? m.Value : null; } return null; } } }