diff options
author | Your Name <you@example.com> | 2021-05-01 15:34:12 -0400 |
---|---|---|
committer | Your Name <you@example.com> | 2021-05-01 15:34:12 -0400 |
commit | 6e41af7248b4e594d1b538a5989c9d0998b53cca (patch) | |
tree | 2e58dc57bdc9893ea2bca4cb8310f5d22e4da762 | |
parent | 7b5d1e3d46e94262a9c0fd3a01ab4685aea9d12d (diff) | |
download | dmtool-6e41af7248b4e594d1b538a5989c9d0998b53cca.tar.gz dmtool-6e41af7248b4e594d1b538a5989c9d0998b53cca.tar.bz2 dmtool-6e41af7248b4e594d1b538a5989c9d0998b53cca.zip |
Made data source a git module
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | configure | 2 | ||||
m--------- | parser/5thSRD | 0 | ||||
-rwxr-xr-x | parser/scrapeToJson.py | 4 | ||||
-rwxr-xr-x | parser/utils.py | 6 |
6 files changed, 12 insertions, 5 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..241c3b7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "parser/5thSRD"] + path = parser/5thSRD + url = https://github.com/vitusventure/5thSRD/ @@ -21,7 +21,7 @@ install: $(EXECUTABLE) parsed cp -r parsed/* $(DESTDIR)$(PREFIX)/share/dmtool/ install -d $(DESTDIR)$(PREFIX)/bin/ install -m 755 $(EXECUTABLE) $(DESTDIR)$(PREFIX)/bin/ - install -m 644 src/dmtool.bash $(pkg-config --variable=completionsdir bash-completion)/dmtool + install -m 644 src/dmtool.bash /usr/share/bash-completion/completions/dmtool $(EXECUTABLE): $(OBJECTS) $(CC) $(OBJECTS) -o $@ $(LDFLAGS) @@ -28,7 +28,7 @@ install: \$(EXECUTABLE) parsed cp -r parsed/* \$(DESTDIR)\$(PREFIX)/share/dmtool/ install -d \$(DESTDIR)\$(PREFIX)/bin/ install -m 755 \$(EXECUTABLE) \$(DESTDIR)\$(PREFIX)/bin/ - install -m 644 src/dmtool.bash \$(pkg-config --variable=completionsdir bash-completion)/dmtool + install -m 644 src/dmtool.bash `pkg-config --variable=completionsdir bash-completion`/dmtool " # Below here shouldn't need editing diff --git a/parser/5thSRD b/parser/5thSRD new file mode 160000 +Subproject 5356ad7fc35f76891c64cd36159cc42a04c9c71 diff --git a/parser/scrapeToJson.py b/parser/scrapeToJson.py index fd8403d..21758d0 100755 --- a/parser/scrapeToJson.py +++ b/parser/scrapeToJson.py @@ -6,7 +6,7 @@ import utils def processMonster(data, weapons, armors, spells): names2names = {'ac': 'Armor Class', 'hp': 'Hit Points', 'speed': 'Speed', 'saves': 'Saving Throws', 'd_resistances': 'Damage Resistances?', 'd_vulnerabilities': 'Damage Vulnerabilities', 'd_immunities': 'Damage Immunities', 'c_immunities': 'Condition Immunities', 'senses': 'Senses', 'langs': 'Languages', 'skills': 'Skills'} - desc = {'entry': 'creature'} + desc = {'entry': 'creatures'} for name in names2names: m = re.search('(\*\*{}\.?\*\*)(.*)'.format(names2names[name]), data) if m: @@ -292,6 +292,8 @@ dumpStuff(spells, 'parsed/spells/') for monster in Path(utils.docsLoc + '/gamemaster_rules/monsters/').glob('*.md'): #print('Processing {}'.format(monster)) + if monster.name == 'index.md': + continue with monster.open() as f: data = f.read() Path('parsed/creatures/').mkdir(exist_ok=True) diff --git a/parser/utils.py b/parser/utils.py index 34649ca..645bc96 100755 --- a/parser/utils.py +++ b/parser/utils.py @@ -4,7 +4,7 @@ import json import re from fractions import Fraction -docsLoc = '../5thSRD/docs/' +docsLoc = 'parser/5thSRD/docs/' skillsByAbility = {'str': ['Athletics'], 'dex': ['Acrobatics', 'Sleight of Hand', 'Stealth'], 'con': [], 'int': ['Arcana', 'History', 'Investigation', 'Nature', 'Religion'], 'wis': ['Animal Handling', 'Insight', 'Medicine', 'Perception', 'Survival'], 'cha': ['Deception', 'Intimidation', 'Performance', 'Persuasion']} @@ -163,9 +163,11 @@ def getSpells(): names2names = {'name': 'name', 'level': 'level', 'type': 'school', 'classes': 'classes', 'casting_time': 'Casting Time', 'range': 'Range', 'components': 'Components', 'duration': 'Duration'} from pathlib import Path for s in Path(docsLoc + '/spellcasting/spells/').iterdir(): + if s.name == 'index.md': + continue with s.open() as f: data = f.read() - spell = {'entry': 'spell'} + spell = {'entry': 'spells'} for name in names2names: spell[name] = re.search('(?sm)[\*]*{}[\*:]* (.*?)^[a-zA-Z#\*]'.format(names2names[name]), data).group(1).strip() spell['name'] = spell['name'].lower() |