initial work on LG GlobalClone 2.00 JSON file format

This commit is contained in:
Horst Beham
2020-05-03 12:12:09 +02:00
parent dc810b0a12
commit 77fdde0cf1
4 changed files with 54 additions and 5 deletions

View File

@@ -71,7 +71,8 @@
</ItemGroup>
<ItemGroup>
<Compile Include="GcChannel.cs" />
<Compile Include="GcSerializer.cs" />
<Compile Include="GcJsonSerializer.cs" />
<Compile Include="GcXmlSerializer.cs" />
<Compile Include="GcSerializerPlugin.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Resources.de.Designer.cs">

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ChanSort.Api;
//using System.Text.Json;
namespace ChanSort.Loader.GlobalClone
{
internal class GcJsonSerializer : SerializerBase
{
private string content;
public GcJsonSerializer(string filename, string jsonContent) : base(filename)
{
this.content = jsonContent;
}
public override void Load()
{
//var doc = new JsonDocument();
}
public override void Save(string tvOutputFile)
{
}
}
}

View File

@@ -1,4 +1,6 @@
using ChanSort.Api;
using System.IO;
using System.Text;
using ChanSort.Api;
namespace ChanSort.Loader.GlobalClone
{
@@ -10,7 +12,18 @@ namespace ChanSort.Loader.GlobalClone
public SerializerBase CreateSerializer(string inputFile)
{
return new GcSerializer(inputFile);
// files with <TLLDATA><ModelInfo><CloneVersion><MajorVersion>200</MajorVersion> .... contain all the actual channel data in JSON format inside a <legacybroadcast> element
var content = File.ReadAllText(inputFile, Encoding.UTF8);
var startTag = "<legacybroadcast>";
var start = content.IndexOf(startTag);
if (start >= 0)
{
var end = content.IndexOf("</legacybroadcast>", start);
var json = content.Substring(start + startTag.Length, end - start - startTag.Length);
return new GcJsonSerializer(inputFile, content);
}
return new GcXmlSerializer(inputFile);
}
}
}

View File

@@ -8,7 +8,7 @@ using ChanSort.Api;
namespace ChanSort.Loader.GlobalClone
{
class GcSerializer : SerializerBase
class GcXmlSerializer : SerializerBase
{
private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT, "Analog");
private readonly ChannelList dtvTvChannels = new ChannelList(SignalSource.DvbCT | SignalSource.TvAndData, "DTV");
@@ -22,7 +22,7 @@ namespace ChanSort.Loader.GlobalClone
private bool usesBinaryDataInUtf8Envelope = false;
#region ctor()
public GcSerializer(string inputFile) : base(inputFile)
public GcXmlSerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;