Pf2e Data Scrapper
Программа обработки данных для игры 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-данных и создание схемы данных для использовании при формировании обработчиков данных.
Использование:
SchemaNode schema = new(); // Создание схемы данных
data = JObject.Parse(reader.ReadToEnd()); // Загрузка данных
schema.AddValue(data); // Добавление данных
Importers
Классы загрузки и обработки данных.
Pf2eViewer
Программа для отображения данных. Не требует дополнительной настройки.
Прогресс
Aonprd (Архивы Нефиса)
Готово: 5 из 70
Общее
- action.yaml
- ancestry.yaml
- archetype.yaml
- background.yaml
- class-kit.yaml
- class-sample.yaml
- class.yaml
- condition.yaml
- creature-ability.yaml
- curse.yaml
- deviant-ability-classification.yaml
- disease.yaml
- heritage.yaml
- kingdom-event.yaml
- kingdom-structure.yaml
- language.yaml
- mythic-calling.yaml
- plane.yaml
- relic.yaml
- ritual.yaml
- sidebar.yaml
- skill-general-action.yaml
- skill.yaml
- source.yaml
- spell.yaml
- tradition.yaml
- trait.yaml
- warfare-army.yaml
- warfare-tactic.yaml
- weapon-sub.yaml
- weather-hazard.yaml
Тексты
- article.yaml
- category-page.yaml
- rules.yaml
Боги
- deity.yaml
- deity-category.yaml
- domain.yaml
Фиты
- feat.yaml
- class-feature.yaml
Подклассы
-
research-field.yaml (Alchemist)
-
apparition.yaml (Animist)
-
practice.yaml (Animist)
-
instinct.yaml (Barbarian)
-
muse.yaml (Bard)
-
cause.yaml (Champion)
-
tenet.yaml (Champion)
-
doctrine.yaml (Cleric)
-
druidic-order.yaml (Druid)
-
methodology.yaml (Investigator)
-
element.yaml (Kineticist)
-
hybrid-study.yaml (Magus)
-
mystery.yaml (Oracle)
-
conscious-mind.yaml (Psychic)
-
subconscious-mind.yaml (Psychic)
-
hunters-edge.yaml (Ranger)
-
racket.yaml (Rogue)
-
bloodline.yaml (Sorcerer)
-
style.yaml (Swashbuckler)
-
implement.yaml (Thaumaturge)
-
lesson.yaml (Witch)
-
patron.yaml (Witch)
-
arcane-school.yaml (Wizard)
-
arcane-thesis.yaml (Wizard)
-
way.yaml (Gunslinger)
-
innovation.yaml (Innovator)
-
ikon.yaml (Exemplar)
-
epithet.yaml (Exemplar)
-
hellknight-order.yaml
-
eidolon.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
- hazard.yaml
TODO
- Добавление экипировки
- Добавление бестиария