fixes #82; old ancestries sql to new yaml
parent
3c1f776842
commit
9c3f57742c
|
@ -0,0 +1,147 @@
|
|||
ancestries:
|
||||
- boosts:
|
||||
- CON
|
||||
- WIS
|
||||
- Free1
|
||||
flavor_text: TODO
|
||||
flaws:
|
||||
- CHA
|
||||
hp: 10
|
||||
name: Dwarf
|
||||
senses: Darkvision
|
||||
size: Medium
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 35
|
||||
page_stop: 35
|
||||
speed: 20
|
||||
traits:
|
||||
- Dwarf
|
||||
- Humanoid
|
||||
- boosts:
|
||||
- DEX
|
||||
- INT
|
||||
- Free1
|
||||
flavor_text: TODO
|
||||
flaws:
|
||||
- CON
|
||||
hp: 6
|
||||
name: Elf
|
||||
senses: Low-Light Vision
|
||||
size: Medium
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 39
|
||||
page_stop: 39
|
||||
speed: 30
|
||||
traits:
|
||||
- Elf
|
||||
- Humanoid
|
||||
- boosts:
|
||||
- CON
|
||||
- CHA
|
||||
- Free1
|
||||
flavor_text: TODO
|
||||
flaws:
|
||||
- STR
|
||||
hp: 8
|
||||
name: Gnome
|
||||
senses: Low-Light Vision
|
||||
size: Small
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 43
|
||||
page_stop: 43
|
||||
speed: 25
|
||||
traits:
|
||||
- Gnome
|
||||
- Humanoid
|
||||
- boosts:
|
||||
- DEX
|
||||
- CHA
|
||||
- Free1
|
||||
flavor_text: TODO
|
||||
flaws:
|
||||
- WIS
|
||||
hp: 6
|
||||
name: Goblin
|
||||
senses: Darkvision
|
||||
size: Small
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 47
|
||||
page_stop: 47
|
||||
speed: 25
|
||||
traits:
|
||||
- Goblin
|
||||
- Humanoid
|
||||
- boosts:
|
||||
- DEX
|
||||
- WIS
|
||||
- Free1
|
||||
flavor_text: TODO
|
||||
flaws:
|
||||
- STR
|
||||
hp: 6
|
||||
name: Halfling
|
||||
senses: Keen Eyes
|
||||
size: Small
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 51
|
||||
page_stop: 51
|
||||
speed: 25
|
||||
traits:
|
||||
- Halfling
|
||||
- Humanoid
|
||||
- boosts:
|
||||
- Free1
|
||||
- Free2
|
||||
flavor_text: TODO
|
||||
flaws: null
|
||||
hp: 8
|
||||
name: Human
|
||||
senses: None
|
||||
size: Medium
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 55
|
||||
page_stop: 55
|
||||
speed: 25
|
||||
traits:
|
||||
- Human
|
||||
- Humanoid
|
||||
- boosts: null
|
||||
flavor_text: TODO
|
||||
flaws: null
|
||||
hp: 8
|
||||
name: Half-Elf
|
||||
senses: None
|
||||
size: Medium
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 55
|
||||
page_stop: 55
|
||||
speed: 25
|
||||
traits:
|
||||
- Elf
|
||||
- Human
|
||||
- Humanoid
|
||||
- Half-Elf
|
||||
- boosts: null
|
||||
flavor_text: TODO
|
||||
flaws: null
|
||||
hp: 8
|
||||
name: Half-Orc
|
||||
senses: None
|
||||
size: Medium
|
||||
source:
|
||||
- abbr: CRB
|
||||
page_start: 55
|
||||
page_stop: 55
|
||||
speed: 25
|
||||
traits:
|
||||
- Humanoid
|
||||
- Human
|
||||
- Orc
|
||||
- Half-Orc
|
|
@ -0,0 +1,138 @@
|
|||
import sqlite3
|
||||
import yaml
|
||||
|
||||
def main():
|
||||
conn = sqlite3.connect('../../pf2.db')
|
||||
|
||||
conn.row_factory = sqlite3.Row
|
||||
c = conn.cursor()
|
||||
stmt = """
|
||||
SELECT ancestries.short_name as name,
|
||||
flavor_text,
|
||||
hp,
|
||||
sizes.short_name AS size,
|
||||
speed,
|
||||
senses.short_name AS senses,
|
||||
ancestries.sources_pages
|
||||
FROM ancestries
|
||||
INNER JOIN
|
||||
sizes ON sizes.size_id = ancestries.size_id
|
||||
INNER JOIN
|
||||
senses ON senses.senses_id = ancestries.vision_id;
|
||||
"""
|
||||
c.execute(stmt)
|
||||
res = [dict(row) for row in c.fetchall()]
|
||||
print(res)
|
||||
|
||||
# for i in res:
|
||||
# if i['hands'] == None or i['hands'] == '':
|
||||
# i['hands'] = 0
|
||||
|
||||
reslist = []
|
||||
for i in res:
|
||||
tmp = {
|
||||
"name": i['name'],
|
||||
"flavor_text": i['flavor_text'],
|
||||
"hp": i['hp'],
|
||||
"size": i['size'],
|
||||
'speed': i['speed'],
|
||||
'senses': i['senses'],
|
||||
"source": [
|
||||
{
|
||||
'abbr': 'CRB',
|
||||
'page_start': int(i['sources_pages']),
|
||||
'page_stop': int(i['sources_pages'])
|
||||
},
|
||||
],
|
||||
'boosts': None,
|
||||
'flaws': None,
|
||||
'traits': None
|
||||
}
|
||||
# add in boosts
|
||||
stmt = """
|
||||
SELECT abilityscores.short_name
|
||||
FROM abilityscores
|
||||
INNER JOIN
|
||||
ancestries_boosts ON abilityscores.abilityscores_id = ancestries_boosts.abilityscores_id
|
||||
INNER JOIN
|
||||
ancestries ON ancestries.ancestry_id = ancestries_boosts.ancestry_id
|
||||
WHERE ancestries.ancestry_id = (
|
||||
SELECT ancestries.ancestry_id
|
||||
WHERE ancestries.short_name = ?
|
||||
);
|
||||
"""
|
||||
c.execute(stmt, (i['name'],))
|
||||
resboosts = [dict(row) for row in c.fetchall()]
|
||||
print(resboosts)
|
||||
if len(resboosts) == 0:
|
||||
tmp['boosts'] = None
|
||||
else:
|
||||
boostslist = []
|
||||
for j in resboosts:
|
||||
boostslist.append(j['short_name'])
|
||||
tmp['boosts'] = boostslist
|
||||
|
||||
|
||||
# add in flaws
|
||||
stmt = """
|
||||
SELECT abilityscores.short_name
|
||||
FROM abilityscores
|
||||
INNER JOIN
|
||||
ancestries_flaws ON abilityscores.abilityscores_id = ancestries_flaws.abilityscores_id
|
||||
INNER JOIN
|
||||
ancestries ON ancestries.ancestry_id = ancestries_flaws.ancestry_id
|
||||
WHERE ancestries.ancestry_id = (
|
||||
SELECT ancestries.ancestry_id
|
||||
WHERE ancestries.short_name = ?
|
||||
);
|
||||
"""
|
||||
c.execute(stmt, (i['name'],))
|
||||
resflaws = [dict(row) for row in c.fetchall()]
|
||||
print(resflaws)
|
||||
if len(resflaws) == 0:
|
||||
tmp['flaws'] = None
|
||||
else:
|
||||
flawslist = []
|
||||
for j in resflaws:
|
||||
flawslist.append(j['short_name'])
|
||||
tmp['flaws'] = flawslist
|
||||
# add in traits
|
||||
stmt = """
|
||||
SELECT traits.short_name
|
||||
FROM traits
|
||||
INNER JOIN
|
||||
ancestries_traits ON traits.trait_id = ancestries_traits.trait_id
|
||||
INNER JOIN
|
||||
ancestries ON ancestries.ancestry_id = ancestries_traits.ancestry_id
|
||||
WHERE ancestries.ancestry_id = (
|
||||
SELECT ancestries.ancestry_id
|
||||
WHERE ancestries.short_name = ?
|
||||
);
|
||||
"""
|
||||
c.execute(stmt, (i['name'],))
|
||||
restraits = [dict(row) for row in c.fetchall()]
|
||||
print(restraits)
|
||||
if len(restraits) == 0:
|
||||
tmp['traits'] = None
|
||||
else:
|
||||
traitslist = []
|
||||
for j in restraits:
|
||||
traitslist.append(j['short_name'])
|
||||
tmp['traits'] = traitslist
|
||||
|
||||
|
||||
|
||||
reslist.append(tmp)
|
||||
|
||||
# # print(reslist)
|
||||
|
||||
tmpd = {'ancestries': reslist}
|
||||
|
||||
# now dump to yaml
|
||||
final = yaml.safe_dump(tmpd, allow_unicode=True)
|
||||
with open('tmp-ancestries.yaml', 'w') as f:
|
||||
f.write(final)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue