10e3e274d52dbf6af05f4d49ebe81ca1ab0789b3
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
- Добавление экипировки
- Добавление бестиария
Languages
C#
89.5%
PLpgSQL
10.4%
Python
0.1%