Files
ChanSort/source/ChanSort.Loader.Samsung/SamsungPlugin.cs
Horst Beham 76d88c63cc - added support for Orsay .zip files which contain a Clone/map-AirD and other files similar to Samsung .scm
- Reference list dialog is now resizable
- Grundig dvb\*_config.xml lists are now separated into TV and Radio lists with individual ordering
- ability to load Grundig dvb\*\_config.xml files containing invalid XML characters (e.g. 0x10)
2022-04-19 10:36:52 +02:00

39 lines
1.1 KiB
C#

using System.IO;
using System.IO.Compression;
using ChanSort.Api;
using ChanSort.Loader.Samsung.Scm;
using ChanSort.Loader.Samsung.Zip;
namespace ChanSort.Loader.Samsung
{
public class SamsungPlugin : ISerializerPlugin
{
public string DllName { get; set; }
public string PluginName => "Samsung (*.scm, *.zip)";
public string FileFilter => "*.scm;*.zip";
public SerializerBase CreateSerializer(string inputFile)
{
var ext = Path.GetExtension(inputFile).ToLowerInvariant();
if (ext == ".scm")
return new ScmSerializer(inputFile);
if (ext == ".zip")
{
// some Orsay TVs export a .zip file containing a Clone folder, which holds the same files as an .scm archive has in its root folder
ZipArchiveEntry zipArchiveEntry = null;
using (var stream = new FileStream(inputFile, FileMode.Open))
{
var zip = new ZipArchive(stream);
zipArchiveEntry = zip.GetEntry("Clone/map-AirD");
}
if (zipArchiveEntry != null)
return new ScmSerializer(inputFile, "Clone");
return new DbSerializer(inputFile);
}
return null;
}
}
}