mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-23 14:10:40 +02:00
Merge pull request #863 from fruhnow/tvg-chno
Adding support for "tvg-chno"-Tag in M3U Channel Lists
This commit is contained in:
commit
cac3a3e945
|
@ -157,56 +157,56 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||||
var nameInExtInf = nameParts.Length > 1 ? nameParts.Last().Trim() : null;
|
var nameInExtInf = nameParts.Length > 1 ? nameParts.Last().Trim() : null;
|
||||||
|
|
||||||
string numberString = null;
|
string numberString = null;
|
||||||
|
string attributeValue;
|
||||||
|
double doubleValue;
|
||||||
|
|
||||||
// Check for channel number with the format from SatIp
|
if (attributes.TryGetValue("tvg-chno", out attributeValue))
|
||||||
// #EXTINF:0,84. VOX Schweiz
|
|
||||||
// #EXTINF:0,84.0 - VOX Schweiz
|
|
||||||
if (!string.IsNullOrWhiteSpace(nameInExtInf))
|
|
||||||
{
|
{
|
||||||
var numberIndex = nameInExtInf.IndexOf(' ');
|
if (double.TryParse(attributeValue, NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue))
|
||||||
if (numberIndex > 0)
|
|
||||||
{
|
{
|
||||||
var numberPart = nameInExtInf.Substring(0, numberIndex).Trim(new[] { ' ', '.' });
|
numberString = attributeValue;
|
||||||
|
|
||||||
if (double.TryParse(numberPart, NumberStyles.Any, CultureInfo.InvariantCulture, out var number))
|
|
||||||
{
|
|
||||||
numberString = numberPart;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(numberString))
|
|
||||||
{
|
|
||||||
numberString = numberString.Trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsValidChannelNumber(numberString))
|
if (!IsValidChannelNumber(numberString))
|
||||||
{
|
{
|
||||||
if (attributes.TryGetValue("tvg-id", out string value))
|
if (attributes.TryGetValue("tvg-id", out attributeValue))
|
||||||
{
|
{
|
||||||
if (double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out var doubleValue))
|
if (double.TryParse(attributeValue, NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue))
|
||||||
{
|
{
|
||||||
numberString = value;
|
numberString = attributeValue;
|
||||||
|
}
|
||||||
|
else if (attributes.TryGetValue("channel-id", out attributeValue))
|
||||||
|
{
|
||||||
|
if (double.TryParse(attributeValue, NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue))
|
||||||
|
{
|
||||||
|
numberString = attributeValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(numberString))
|
if (String.IsNullOrWhiteSpace(numberString))
|
||||||
{
|
|
||||||
numberString = numberString.Trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsValidChannelNumber(numberString))
|
|
||||||
{
|
|
||||||
if (attributes.TryGetValue("channel-id", out string value))
|
|
||||||
{
|
{
|
||||||
numberString = value;
|
// Using this as a fallback now as this leads to Problems with channels like "5 USA"
|
||||||
}
|
// where 5 isnt ment to be the channel number
|
||||||
}
|
// Check for channel number with the format from SatIp
|
||||||
|
// #EXTINF:0,84. VOX Schweiz
|
||||||
|
// #EXTINF:0,84.0 - VOX Schweiz
|
||||||
|
if (!string.IsNullOrWhiteSpace(nameInExtInf))
|
||||||
|
{
|
||||||
|
var numberIndex = nameInExtInf.IndexOf(' ');
|
||||||
|
if (numberIndex > 0)
|
||||||
|
{
|
||||||
|
var numberPart = nameInExtInf.Substring(0, numberIndex).Trim(new[] { ' ', '.' });
|
||||||
|
|
||||||
|
if (double.TryParse(numberPart, NumberStyles.Any, CultureInfo.InvariantCulture, out var number))
|
||||||
|
{
|
||||||
|
numberString = numberPart;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(numberString))
|
|
||||||
{
|
|
||||||
numberString = numberString.Trim();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IsValidChannelNumber(numberString))
|
if (!IsValidChannelNumber(numberString))
|
||||||
|
@ -214,7 +214,11 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||||
numberString = null;
|
numberString = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(numberString))
|
if (!string.IsNullOrWhiteSpace(numberString))
|
||||||
|
{
|
||||||
|
numberString = numberString.Trim();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(mediaUrl))
|
if (string.IsNullOrWhiteSpace(mediaUrl))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue