# 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 **Боги** - [x] deity.yaml - [x] deity-category.yaml - [x] domain.yaml **Фиты** - [x] feat.yaml - [ ] class-feature.yaml ### Подклассы (1 из 29) - [x] research-field.yaml (Alchemist) - [x] apparition.yaml (Animist) - [x] practice.yaml (Animist) - [x] instinct.yaml (Barbarian) - [x] muse.yaml (Bard) - [x] cause.yaml (Champion) - [x] tenet.yaml (Champion) - [x] doctrine.yaml (Cleric) - [x] druidic-order.yaml (Druid) - [x] methodology.yaml (Investigator) - [x] element.yaml (Kineticist) - [x] hybrid-study.yaml (Magus) - [x] mystery.yaml (Oracle) - [x] conscious-mind.yaml (Psychic) - [x] subconscious-mind.yaml (Psychic) - [x] hunters-edge.yaml (Ranger) - [x] racket.yaml (Rogue) - [x] bloodline.yaml (Sorcerer) - [x] style.yaml (Swashbuckler) - [x] eidolon.yaml (Summoner) - [x] implement.yaml (Thaumaturge) - [x] lesson.yaml (Witch) - [x] patron.yaml (Witch) - [x] arcane-school.yaml (Wizard) - [x] arcane-thesis.yaml (Wizard) - [x] way.yaml (Gunslinger) - [x] innovation.yaml (Innovator) - [x] ikon.yaml (Exemplar) - [x] epithet.yaml (Exemplar) - [ ] hellknight-order.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 - Добавление экипировки - Добавление бестиария