68 lines
1.8 KiB
C#
68 lines
1.8 KiB
C#
using Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder;
|
|
using Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.SchemaBuilder;
|
|
using Pf2eDataScrapper.Importers.Repositories;
|
|
|
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry;
|
|
|
|
/// <summary>
|
|
/// Импортёр для модуля Pf2e FoundryVTT.
|
|
/// </summary>
|
|
internal class Pf2EFoundryImporter : AbstractImporter
|
|
{
|
|
/// <summary>
|
|
/// Отображаемое имя импортёра.
|
|
/// </summary>
|
|
public override string Name => "Pf2e FoundryVTT module";
|
|
|
|
/// <summary>
|
|
/// Короткое имя импортёра.
|
|
/// </summary>
|
|
public override string Slug => "pf2e";
|
|
|
|
public override AbstractImporterRepository Repository =>
|
|
new GitRepository(this, "https://github.com/foundryvtt/pf2e.git");
|
|
|
|
/// <summary>
|
|
/// Загрузчик данных компендиума.
|
|
/// </summary>
|
|
public CompendiumLoader Loader { get; }
|
|
|
|
/// <summary>
|
|
/// Конструктор импортёра.
|
|
/// </summary>
|
|
public Pf2EFoundryImporter()
|
|
{
|
|
Loader = new CompendiumLoader(this);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Метод подготовки данных для импорта.
|
|
/// </summary>
|
|
public override void Prepare()
|
|
{
|
|
Loader.Prepare();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Импорт данных.
|
|
/// </summary>
|
|
public override void Import()
|
|
{
|
|
PF2eFoundryDataBuilder builder = new(Loader);
|
|
|
|
builder.TruncateTables();
|
|
builder.Build();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Построение схем данных
|
|
/// </summary>
|
|
public override void BuildSchemas()
|
|
{
|
|
CompendiumSchemaBuilder builder = new(Loader);
|
|
|
|
builder.BuildSchemas();
|
|
builder.Save(EnvSettings.OutputDir);
|
|
}
|
|
}
|