public void M3UItemEmptinessTest() { M3UItem item = new M3UItem(new FileInfo(path), new LoadOptions(/*ShowComments*/ false, /*ShowPath*/ true)); List <M3UItem> listItem = new List <M3UItem>(); listItem.Add(item); bool isEmpty = listItem.Any(); Assert.IsTrue(isEmpty); }
public static List <M3UItem> ParseM3U(string m3uFile) { String[] m3uSplit = m3uFile.Split('\n'); List <M3UItem> items = new List <M3UItem>(); for (int i = 0; i < m3uSplit.Length; i++) { if (m3uSplit[i].Length == 0 || m3uSplit[i].Equals("#EXTM3U")) { continue; } if (m3uSplit[i].StartsWith("#EXTINF")) { //Parse info M3UItem newItem = new M3UItem(); newItem.Attributes = new Dictionary <string, string>(); newItem.b64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(m3uSplit[i])); string[] m3uattrs = Regex.Split(m3uSplit[i], "(?<=^[^\"]*(?:\"[^\"]*\"[^\"]*)*) (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); newItem.ExtInf = m3uattrs[0]; foreach (string s in m3uattrs) { if (s.Contains("=") && s.Contains("\"")) { Match mc = Regex.Match(s, "(.*?)=\"(.*?)\""); if (mc.Groups.Count == 3) { newItem.Attributes.Add(mc.Groups[1].Value, mc.Groups[2].Value); } } } string[] namesplit = m3uSplit[i].Split("\","); newItem.Name = namesplit[1].TrimStart(); newItem.Url = m3uSplit[i + 1]; items.Add(newItem); } } return(items); }