From 77fdde0cf18115d601612352a96c4e5cd6a5412c Mon Sep 17 00:00:00 2001 From: Horst Beham Date: Sun, 3 May 2020 12:12:09 +0200 Subject: [PATCH] initial work on LG GlobalClone 2.00 JSON file format --- .../ChanSort.Loader.GlobalClone.csproj | 3 +- .../GcJsonSerializer.cs | 35 +++++++++++++++++++ .../GcSerializerPlugin.cs | 17 +++++++-- .../{GcSerializer.cs => GcXmlSerializer.cs} | 4 +-- 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs rename source/ChanSort.Loader.GlobalClone/{GcSerializer.cs => GcXmlSerializer.cs} (99%) diff --git a/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj b/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj index 48cbc29..9fe995f 100644 --- a/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj +++ b/source/ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj @@ -71,7 +71,8 @@ - + + diff --git a/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs b/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs new file mode 100644 index 0000000..7d41d98 --- /dev/null +++ b/source/ChanSort.Loader.GlobalClone/GcJsonSerializer.cs @@ -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) + { + + } + } + +} diff --git a/source/ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs b/source/ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs index f4ddab5..62eedf5 100644 --- a/source/ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs +++ b/source/ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs @@ -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 200 .... contain all the actual channel data in JSON format inside a element + var content = File.ReadAllText(inputFile, Encoding.UTF8); + var startTag = ""; + var start = content.IndexOf(startTag); + if (start >= 0) + { + var end = content.IndexOf("", start); + var json = content.Substring(start + startTag.Length, end - start - startTag.Length); + return new GcJsonSerializer(inputFile, content); + } + + return new GcXmlSerializer(inputFile); } } } diff --git a/source/ChanSort.Loader.GlobalClone/GcSerializer.cs b/source/ChanSort.Loader.GlobalClone/GcXmlSerializer.cs similarity index 99% rename from source/ChanSort.Loader.GlobalClone/GcSerializer.cs rename to source/ChanSort.Loader.GlobalClone/GcXmlSerializer.cs index e9f0fad..8c9432c 100644 --- a/source/ChanSort.Loader.GlobalClone/GcSerializer.cs +++ b/source/ChanSort.Loader.GlobalClone/GcXmlSerializer.cs @@ -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;