.gitignore в попытках использовать ИИ (не особо удачной, но да ладно)...
Pf2e Data Scrapper
Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e.
Начало работы
- Склонируйте репозиторий и войдите в папку
Pf2eDataScrapper. - Создайте файл
.envи добавьте в него содержимое из файла.env.example. Измените содержащиеся поля:DATA_DIR- путь к папке для распаковки репозиториев обрабатываемых данных;OUTPUT_DIR- путь к месту сохранения схем;DATABASE_CONNECTION- строка подключения к БД (только PostreSQL).
- Перейдите а папку
Pf2eModel(cd ../Pf2eModel) и запуститеdotnet ef database updateдля создания структуры БД в командной строке. - Запустите проект
Pf2eDataScrapperдля парсинга информации. - Запустите проект
Pf2eViewerдля просмотра полученной инфомрации.
Роли проектов
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 (Архивы Нефиса)
Готово: 15 из 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
- Добавление экипировки
- Добавление бестиария