Pf2e Data Screapper

Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e.

Начало работы

  • Склонируйте репозиторий и войдите в папку Pf2eDataScrapper.
  • Создайте файл .env и добавьте в него содержимое из файла .env.example. Измените содержащиеся поля:
    • DATA_DIR - путь к папке для распаковки репозиториев обрабатываемых данных;
    • OUTPUT_DIR - путь к месту сохранения схем;
    • DATABASE_CONNECTION - строка подключения к БД (только PostreSQL).
  • Для создания структуры БД в командной строке запустите dotnet ef database update.
  • Проект готов к работе.

Общая структура

SchemaBuilder

Классы обработки вводимых JSON-данных и создание схемы данных для использовании при формировании обработчиков данных.

Использование:

SchemaNode schema = new(); // Создание схемы данных

data = JObject.Parse(reader.ReadToEnd()); // Загрузка данных

schema.AddValue(data); // Добавление данных

Model

Набор классов модели ORM EntityFramework.

Класс-контекст Pf2eDbContext разделён на 2 файла:

  • в Pf2eDbContext.cs находится набор таблиц и конфигурация БД,
  • в Pf2eDbContextModel.cs находится Fluent API описание связей в модели.

Для удобства модель разбита на несколько папок-пространст имён:

  • Base - здесь описан класс Entity, который является корнем всех связей и описаний. В этой таблице находятся общие характеристики объектов: название, описание, тип, а так же ссылки на общие элементы: указание источников и трейтов - всё это в пространстве имён
  • Common содержит общее классы на которые могут ссылаться разные типа.
  • Enum содержит описание всех перечислений, использующихся в модели.
  • Structure содержит все основные типы, которые связаны 1-к-1 с Entity (для указания этого используется интерфейс IEntity).

Migrations

Миграции БД, генерируются в автомотическом режиме.

Importers

Классы загрузки и обработки данных.

TODO

  • Добавление экипировки
  • Добавление бестиария
S
Description
No description provided
Readme
22 MiB
Languages
C# 89.5%
PLpgSQL 10.4%
Python 0.1%