update m3uparser
This commit is contained in:
parent
4a73875ef3
commit
95ceddb7d9
|
@ -14,6 +14,7 @@ using MediaBrowser.Controller;
|
||||||
using MediaBrowser.Controller.IO;
|
using MediaBrowser.Controller.IO;
|
||||||
using MediaBrowser.Controller.LiveTv;
|
using MediaBrowser.Controller.LiveTv;
|
||||||
using MediaBrowser.Model.Logging;
|
using MediaBrowser.Model.Logging;
|
||||||
|
using MediaBrowser.Model.Extensions;
|
||||||
|
|
||||||
namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||||
{
|
{
|
||||||
|
@ -273,20 +274,18 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||||
|
|
||||||
var reg = new Regex(@"([a-z0-9\-_]+)=\""([^""]+)\""", RegexOptions.IgnoreCase);
|
var reg = new Regex(@"([a-z0-9\-_]+)=\""([^""]+)\""", RegexOptions.IgnoreCase);
|
||||||
var matches = reg.Matches(line);
|
var matches = reg.Matches(line);
|
||||||
var minIndex = int.MaxValue;
|
|
||||||
foreach (Match match in matches)
|
|
||||||
{
|
|
||||||
dict[match.Groups[1].Value] = match.Groups[2].Value;
|
|
||||||
minIndex = Math.Min(minIndex, match.Index);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (minIndex > 0 && minIndex < line.Length)
|
|
||||||
{
|
|
||||||
line = line.Substring(0, minIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
remaining = line;
|
remaining = line;
|
||||||
|
|
||||||
|
foreach (Match match in matches)
|
||||||
|
{
|
||||||
|
var key = match.Groups[1].Value;
|
||||||
|
var value = match.Groups[2].Value;
|
||||||
|
|
||||||
|
dict[match.Groups[1].Value] = match.Groups[2].Value;
|
||||||
|
remaining = remaining.Replace(key + "=\"" + value + "\"", string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
return dict;
|
return dict;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,5 +52,17 @@ namespace MediaBrowser.Tests
|
||||||
Assert.AreEqual("Movies!", result[0].Name);
|
Assert.AreEqual("Movies!", result[0].Name);
|
||||||
Assert.AreEqual("3.2", result[0].Number);
|
Assert.AreEqual("3.2", result[0].Number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void TestFormat4()
|
||||||
|
{
|
||||||
|
BaseExtensions.CryptographyProvider = new CryptographyProvider();
|
||||||
|
|
||||||
|
var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0 tvg-id=\"abckabclosangeles.path.to\" tvg-logo=\"path.to / channel_logos / abckabclosangeles.png\", ABC KABC Los Angeles\nhttp://mystream", "-", "-");
|
||||||
|
Assert.AreEqual(1, result.Count);
|
||||||
|
|
||||||
|
Assert.IsNull(result[0].Number);
|
||||||
|
Assert.AreEqual("ABC KABC Los Angeles", result[0].Name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user