173 lines
5.2 KiB
Markdown
173 lines
5.2 KiB
Markdown
# Pf2e Data Scrapper
|
||
|
||
Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e.
|
||
|
||
## Начало работы
|
||
|
||
- Склонируйте репозиторий и войдите в папку `Pf2e/Scrapper`.
|
||
- Создайте файл `.env` и добавьте в него содержимое из файла `.env.example`. Измените содержащиеся поля:
|
||
- `DATA_DIR` - путь к папке для распаковки репозиториев обрабатываемых данных;
|
||
- `OUTPUT_DIR` - путь к месту сохранения схем;
|
||
- `DATABASE_CONNECTION` - строка подключения к БД (только PostreSQL);
|
||
- `MAX_THREADS` - максимальное количество потоков при параллельной обработке.
|
||
- Перейдите а папку `Pf2e/Database` (`cd ../Database`) и запустите `dotnet ef database update` для создания структуры БД в командной строке. Если необходимо обновить структуру после изменения модели - используйте скрипт `RebuildDatabase.bat`.
|
||
- Запустите проект `Pf2e.Scrapper` для парсинга информации.
|
||
|
||
## Роли и документация проектов
|
||
|
||
- [`Pf2e.Database`](Documentation/Pf2e.Database/index.md) - общая ORM-структура модели.
|
||
- [`Pf2e.Scrapper`](Documentation/Pf2e.Scrapper/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
|
||
|
||
- Добавление экипировки
|
||
- Добавление бестиария
|
||
|
||
|