Extractor

static class · пространство имён z3n7.Tools · исходник Tools/Extractor.cs

public static class Extractor

Чтение и запись файлов проектов ZennoPoster (.zp) собственным загрузчиком ProjectMaker и поиск по их действиям. Работает только внутри ProjectMaker: использует сборку ProjectMaker, загруженную в процесс, а в других местах ничего не делает.

Методы

BuildZpFromXml

public static void BuildZpFromXml(this IZennoPosterProjectModel project, string xml = null, string zpPath = null)

Метод расширения для IZennoPosterProjectModel. исходник

Собирает файл .zp из XML проекта; контейнером служит файл текущего проекта.

Параметр Описание
xml XML проекта; по умолчанию .xml текущего проекта рядом с ним.
zpPath Целевой файл; по умолчанию имя проекта с суффиксом в Unix-мс, например name.1730000000000.zp.

ExtractInputSettingsHtml

public static string ExtractInputSettingsHtml(string zpPath)

исходник

Читает HTML входных настроек (InputSettings/inputSettings.html) файла .zp.

Возвращает: HTML без BOM; null вне ProjectMaker.

ExtractXml

public static string ExtractXml(string zpPath)

исходник

Распаковывает XML проекта из файла .zp.

Параметр Описание
zpPath Файл проекта.

Возвращает: XML; текст исключения загрузчика при сбое; null вне ProjectMaker.

SaveAsXml

public static void SaveAsXml(this IZennoPosterProjectModel project, string xmlPath = null)

Метод расширения для IZennoPosterProjectModel. исходник

Распаковывает текущий проект в XML (UTF-16).

Параметр Описание
xmlPath Целевой файл; по умолчанию имя файла проекта с .xml.

SaveInputSettingsHtml

public static void SaveInputSettingsHtml(string zpPath, string html)

исходник

Заменяет HTML входных настроек внутри самого файла .zp.

public static void SaveInputSettingsHtml(string zpPath, string html, string outputZpPath)

исходник

Записывает копию файла .zp с заменённым HTML входных настроек. Если выходной файл — это исходный, запись идёт через временный файл.

Параметр Описание
zpPath Проект-источник.
html Новый HTML входных настроек.
outputZpPath Целевой файл проекта.

SearchInZp

public static List<SearchHit> SearchInZp(this IZennoPosterProjectModel project, string text, string folder = null, bool recursive = true, bool cache = true, int padding = 60)

Метод расширения для IZennoPosterProjectModel. исходник

Ищет текст в действиях всех файлов .zp в папке (без учёта регистра, в атрибутах и значениях; XML-сущности при сравнении декодируются). Одно совпадение на действие; каждое совпадение также пишется в лог. Распаковка занимает около секунды на файл, поэтому распакованный XML можно кешировать в скрытой папке .xml; в имени файла кеша — время изменения и размер проекта, так что изменённый проект перечитывается сам.

Параметр Описание
text Текст для поиска.
folder Папка; по умолчанию папка проекта.
recursive Включать подпапки.
cache Использовать кеш XML.
padding Сколько символов контекста брать с каждой стороны.

Примечания: Работает только внутри ProjectMaker: использует сборку ProjectMaker, загруженную в процесс, а в других местах ничего не делает.