2025-04-30 14:37:24 +04:00
2025-05-13 23:12:24 +04:00
2025-05-10 15:53:33 +04:00

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

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