Files
Pf2eDataScrapper/README.md
T

182 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pf2e Data Screapper
Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e.
## Начало работы
- Склонируйте репозиторий и войдите в папку `Pf2eDataScrapper`.
- Создайте файл `.env` и добавьте в него содержимое из файла `.env.example`. Измените содержащиеся поля:
- `DATA_DIR` - путь к папке для распаковки репозиториев обрабатываемых данных;
- `OUTPUT_DIR` - путь к месту сохранения схем;
- `DATABASE_CONNECTION` - строка подключения к БД (только PostreSQL).
- Перейдите а папку `Pf2eModel` (`cd ../Pf2eModel`) и запустите `dotnet ef database update` для создания структуры БД в командной строке.
## Роли проектов
- `Pf2eModel` - общая ORM-структура модели.
- `Pf2eDataScrapper` - загрузчик и обработчик данных.
- `Pf2eViewer` - программа отображения базы данных.
## Общая структура
### `Pf2eModel`
Набор классов модели ORM EntityFramework.
Класс-контекст `Pf2eDbContext` разделён на 2 файла:
- в `Pf2eDbContext.cs` находится набор таблиц и конфигурация БД,
- в `Pf2eDbContextModel.cs` находится Fluent API описание связей в модели.
Для удобства модель разбита на несколько папок-пространст имён:
- `Base` - здесь описан класс `Entity`, который является корнем всех связей и описаний. В этой таблице находятся общие характеристики объектов: название, описание, тип, а так же ссылки на общие элементы: указание источников и трейтов - всё это в пространстве имён
- `Common` содержит общее классы на которые могут ссылаться разные типа.
- `Enum` содержит описание всех перечислений, использующихся в модели.
- `Structure` содержит все основные типы, которые связаны 1-к-1 с `Entity` (для указания этого используется интерфейс `IEntity`).
#### `Migrations`
Миграции БД, генерируются в автомотическом режиме.
### `Pf2eDataScrapper`
#### `SchemaBuilder`
Классы обработки вводимых JSON-данных и создание схемы данных для использовании при формировании обработчиков данных.
Использование:
```csharp
SchemaNode schema = new(); // Создание схемы данных
data = JObject.Parse(reader.ReadToEnd()); // Загрузка данных
schema.AddValue(data); // Добавление данных
```
#### `Importers`
Классы загрузки и обработки данных.
### `Pf2eViewer`
Программа для отображения данных. Не требует дополнительной настройки.
# Прогресс
## Aonprd (Архивы Нефиса)
Готово: **4** из 70
### Общее
- [x] action.yaml
- [x] ancestry.yaml
- [ ] apparition.yaml
- [ ] arcane-school.yaml
- [ ] arcane-thesis.yaml
- [ ] archetype.yaml
- [ ] article.yaml
- [ ] background.yaml
- [ ] bloodline.yaml
- [ ] category-page.yaml
- [ ] cause.yaml
- [ ] class-feature.yaml
- [ ] class-kit.yaml
- [ ] class-sample.yaml
- [ ] class.yaml
- [ ] condition.yaml
- [ ] conscious-mind.yaml
- [ ] creature-ability.yaml
- [ ] curse.yaml
- [ ] deity-category.yaml
- [ ] deity.yaml
- [ ] deviant-ability-classification.yaml
- [ ] disease.yaml
- [ ] doctrine.yaml
- [ ] domain.yaml
- [ ] druidic-order.yaml
- [ ] eidolon.yaml
- [ ] element.yaml
- [ ] epithet.yaml
- [ ] feat.yaml
- [ ] hazard.yaml
- [ ] hellknight-order.yaml
- [ ] heritage.yaml
- [ ] hunters-edge.yaml
- [ ] hybrid-study.yaml
- [ ] ikon.yaml
- [ ] implement.yaml
- [ ] innovation.yaml
- [ ] instinct.yaml
- [ ] kingdom-event.yaml
- [ ] kingdom-structure.yaml
- [x] language.yaml
- [ ] lesson.yaml
- [ ] methodology.yaml
- [ ] muse.yaml
- [ ] mystery.yaml
- [ ] mythic-calling.yaml
- [ ] patron.yaml
- [ ] plane.yaml
- [ ] practice.yaml
- [ ] racket.yaml
- [ ] relic.yaml
- [ ] research-field.yaml
- [ ] ritual.yaml
- [ ] rules.yaml
- [ ] sidebar.yaml
- [ ] skill-general-action.yaml
- [ ] skill.yaml
- [ ] source.yaml
- [ ] spell.yaml
- [ ] style.yaml
- [ ] subconscious-mind.yaml
- [ ] tenet.yaml
- [ ] tradition.yaml
- [x] trait.yaml
- [ ] warfare-army.yaml
- [ ] warfare-tactic.yaml
- [ ] way.yaml
- [ ] weapon-sub.yaml
- [ ] weather-hazard.yaml
### Бестиарий
Готово **0** из 10
- [ ] animal-companion-advanced.yaml
- [ ] animal-companion-specialization.yaml
- [ ] animal-companion-unique.yaml
- [ ] animal-companion.yaml
- [ ] creature-adjustment.yaml
- [ ] creature-family.yaml
- [ ] creature-theme-template.yaml
- [ ] creature.yaml
- [ ] familiar-ability.yaml
- [ ] familiar-specific.yaml
### Экипировка
Готово **0** из 11
- [ ] armor-group.yaml
- [ ] armor.yaml
- [ ] campsite-meal.yaml
- [ ] equipment-bonus.yaml
- [ ] equipment-sub.yaml
- [ ] equipment.yaml
- [ ] set-relic.yaml
- [ ] shield.yaml
- [ ] siege-weapon.yaml
- [ ] vehicle.yaml
- [ ] weapon.yaml
# TODO
- Добавление экипировки
- Добавление бестиария