Added EPUB plugin

This commit is contained in:
Marco Gavelli
2018-07-16 09:46:52 +02:00
parent 0e28a4a006
commit a78428c698
61 changed files with 2533 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
using System.IO;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
namespace VersOne.Epub.Internal
{
internal static class XmlUtils
{
public static async Task<XDocument> LoadDocumentAsync(Stream stream)
{
using (MemoryStream memoryStream = new MemoryStream())
{
await stream.CopyToAsync(memoryStream).ConfigureAwait(false);
memoryStream.Position = 0;
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Ignore,
Async = true
};
using (XmlReader xmlReader = XmlReader.Create(memoryStream, xmlReaderSettings))
{
return await Task.Run(() => XDocument.Load(memoryStream)).ConfigureAwait(false);
}
}
}
}
}

View File

@@ -0,0 +1,32 @@
using System;
namespace VersOne.Epub.Internal
{
internal static class ZipPathUtils
{
public static string GetDirectoryPath(string filePath)
{
int lastSlashIndex = filePath.LastIndexOf('/');
if (lastSlashIndex == -1)
{
return String.Empty;
}
else
{
return filePath.Substring(0, lastSlashIndex);
}
}
public static string Combine(string directory, string fileName)
{
if (String.IsNullOrEmpty(directory))
{
return fileName;
}
else
{
return String.Concat(directory, "/", fileName);
}
}
}
}