# Pf2e Data Scrapper Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e. ## Начало работы - Склонируйте репозиторий и войдите в папку `Pf2eDataScrapper`. - Создайте файл `.env` и добавьте в него содержимое из файла `.env.example`. Измените содержащиеся поля: - `DATA_DIR` - путь к папке для распаковки репозиториев обрабатываемых данных; - `OUTPUT_DIR` - путь к месту сохранения схем; - `DATABASE_CONNECTION` - строка подключения к БД (только PostreSQL); - `MAX_THREADS` - максимальное количество потоков при параллельной обработке. - Перейдите а папку `Pf2eModel` (`cd ../Pf2eModel`) и запустите `dotnet ef database update` для создания структуры БД в командной строке. Если необходимо обновить структуру после изменения модели - используйте скрипт `RebuildDatabase.bat`. - Запустите проект `Pf2eDataScrapper` для парсинга информации. ## Роли и документация проектов - [`Pf2eModel`](Documentation/Pf2eModel/index.md) - общая ORM-структура модели. - [`Pf2eDataScrapper`](Documentation/Pf2eDataScrapper/index.md) - загрузчик и обработчик данных. По ссылкам можно увидеть полную документацию классов. # Публичная версия БД Последняя проверенная версия БД развёрнута на моём личном сервере: - Хост: `teswa.ru` - Порт: `5432` - Пользователь: `pf2e` - Пароль: `pf2e` Этот доступ read-only (т.е. доступны только SELECT). Рекомендуемый запрос к БД для получения сущности (например, действия): ```sql SELECT E.*, A.* FROM actions AS A INNER JOIN entities AS E ON A.id = E.id; ``` # Прогресс создания обработчиков ## Aonprd (Архивы Нефиса) ### Общее (15 из 36) - [x] action.yaml - [x] ancestry.yaml - [x] archetype.yaml - [x] background.yaml - [x] class.yaml - [ ] creature-ability.yaml - [ ] deviant-ability-classification.yaml - [x] heritage.yaml - [ ] kingdom-event.yaml - [ ] kingdom-structure.yaml - [x] language.yaml - [ ] mythic-calling.yaml - [ ] plane.yaml - [ ] relic.yaml - [x] ritual.yaml - [ ] skill-general-action.yaml - [x] skill.yaml - [x] source.yaml - [x] spell.yaml - [ ] tradition.yaml - [x] trait.yaml - [ ] warfare-army.yaml - [ ] warfare-tactic.yaml - [ ] weather-hazard.yaml **Состояния** - [ ] condition.yaml - [ ] curse.yaml - [ ] disease.yaml **Тексты** - [ ] article.yaml - [ ] category-page.yaml - [x] rules.yaml - [ ] sidebar.yaml **Боги** - [ ] deity.yaml - [ ] deity-category.yaml - [ ] domain.yaml **Фиты** - [x] feat.yaml - [ ] class-feature.yaml ### Подклассы (1 из 29) - [ ] research-field.yaml (Alchemist) - [x] 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 - [ ] weapon-sub.yaml - [ ] hazard.yaml ### Под вопросом (0 из 2) - [ ] class-kit.yaml - [ ] class-sample.yaml ### Что не дополучено с Архивов - Ссылка наследий (`heritage`) на родословные (`ancestry`). # TODO - Добавление экипировки - Добавление бестиария