|
@@ -157,72 +157,68 @@ 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
|
|
|
|
- // #EXTINF:0,84. VOX Schweiz
|
|
|
|
- // #EXTINF:0,84.0 - VOX Schweiz
|
|
|
|
- if (!string.IsNullOrWhiteSpace(nameInExtInf))
|
|
|
|
|
|
+ if (attributes.TryGetValue("tvg-chno", out attributeValue))
|
|
{
|
|
{
|
|
- var numberIndex = nameInExtInf.IndexOf(' ');
|
|
|
|
- if (numberIndex > 0)
|
|
|
|
|
|
+ if (double.TryParse(attributeValue, NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue))
|
|
{
|
|
{
|
|
- var numberPart = nameInExtInf.Substring(0, numberIndex).Trim(new[] { ' ', '.' });
|
|
|
|
-
|
|
|
|
- if (double.TryParse(numberPart, NumberStyles.Any, CultureInfo.InvariantCulture, out var number))
|
|
|
|
- {
|
|
|
|
- numberString = numberPart;
|
|
|
|
- }
|
|
|
|
|
|
+ numberString = attributeValue;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- 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))
|
|
|
|
- {
|
|
|
|
- numberString = numberString.Trim();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (!IsValidChannelNumber(numberString))
|
|
|
|
- {
|
|
|
|
- if (attributes.TryGetValue("channel-id", out string value))
|
|
|
|
|
|
+ if (String.IsNullOrWhiteSpace(numberString))
|
|
{
|
|
{
|
|
- 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 (!IsValidChannelNumber(numberString))
|
|
if (!IsValidChannelNumber(numberString))
|
|
{
|
|
{
|
|
- if (attributes.TryGetValue("tvg-chno", out string value))
|
|
|
|
- {
|
|
|
|
- numberString = value;
|
|
|
|
- }
|
|
|
|
|
|
+ numberString = null;
|
|
}
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(numberString))
|
|
if (!string.IsNullOrWhiteSpace(numberString))
|
|
{
|
|
{
|
|
numberString = numberString.Trim();
|
|
numberString = numberString.Trim();
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (!IsValidChannelNumber(numberString))
|
|
|
|
- {
|
|
|
|
- numberString = null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (string.IsNullOrWhiteSpace(numberString))
|
|
|
|
|
|
+ else
|
|
{
|
|
{
|
|
if (string.IsNullOrWhiteSpace(mediaUrl))
|
|
if (string.IsNullOrWhiteSpace(mediaUrl))
|
|
{
|
|
{
|