aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs35
1 files changed, 35 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index 6b848d0f65..e54adc0c5c 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -30,6 +30,8 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
+using IniParser;
+using IniParser.Model;
namespace MediaBrowser.Server.Implementations.LiveTv
{
@@ -2488,5 +2490,38 @@ namespace MediaBrowser.Server.Implementations.LiveTv
IsRegistered = true
});
}
+
+ public List<NameValuePair> GetSatIniMappings()
+ {
+ var names = GetType().Assembly.GetManifestResourceNames().Where(i => i.IndexOf("SatIp.ini.satellite", StringComparison.OrdinalIgnoreCase) != -1).ToList();
+
+ return names.Select(GetSatIniMappings).Where(i => i != null).DistinctBy(i => i.Value.Split('|')[0]).ToList();
+ }
+
+ public NameValuePair GetSatIniMappings(string resource)
+ {
+ using (var stream = GetType().Assembly.GetManifestResourceStream(resource))
+ {
+ using (var reader = new StreamReader(stream))
+ {
+ var parser = new StreamIniDataParser();
+ IniData data = parser.ReadData(reader);
+
+ var satType1 = data["SATTYPE"]["1"];
+ var satType2 = data["SATTYPE"]["2"];
+
+ if (string.IsNullOrWhiteSpace(satType2))
+ {
+ return null;
+ }
+
+ return new NameValuePair
+ {
+ Name = satType1 + " " + satType2,
+ Value = satType2 + "|" + Path.GetFileName(resource)
+ };
+ }
+ }
+ }
}
} \ No newline at end of file