aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs')
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs34
1 files changed, 18 insertions, 16 deletions
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
index 34d0dd853..8c4b9bf60 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
@@ -136,11 +136,26 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
channel.Name = GetChannelName(extInf, attributes);
channel.Number = GetChannelNumber(extInf, attributes, mediaUrl);
- var channelId = GetTunerChannelId(attributes);
+ string tvgId;
+ attributes.TryGetValue("tvg-id", out tvgId);
+
+ string channelId;
+ attributes.TryGetValue("channel-id", out channelId);
+
+ channel.TunerChannelId = string.IsNullOrWhiteSpace(tvgId) ? channelId : tvgId;
+
+ var channelIdValues = new List<string>();
if (!string.IsNullOrWhiteSpace(channelId))
{
- channel.Id = channelId;
- channel.TunerChannelId = channelId;
+ channelIdValues.Add(channelId);
+ }
+ if (!string.IsNullOrWhiteSpace(tvgId))
+ {
+ channelIdValues.Add(tvgId);
+ }
+ if (channelIdValues.Count > 0)
+ {
+ channel.Id = string.Join("_", channelIdValues.ToArray());
}
return channel;
@@ -296,19 +311,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
return name;
}
- private string GetTunerChannelId(Dictionary<string, string> attributes)
- {
- string result;
- attributes.TryGetValue("tvg-id", out result);
-
- if (string.IsNullOrWhiteSpace(result))
- {
- attributes.TryGetValue("channel-id", out result);
- }
-
- return result;
- }
-
private Dictionary<string, string> ParseExtInf(string line, out string remaining)
{
var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);