got spell traits inserting based on github data

merge-requests/29/head
James Miller 2019-08-08 21:42:57 -05:00
parent a2690994ae
commit e8ab1860d3
2 changed files with 43 additions and 2 deletions

View File

@ -30,6 +30,15 @@ def main():
## Get database connection
conn = sqlite3.connect('../../pf2.db')
# load in ids for traits from traits table so we only call this once
# instead of every spell
stmt = "SELECT trait_id, short_name FROM traits"
c = conn.cursor()
c.execute(stmt)
traits = c.fetchall()
# print(traits)
id = 0
for i in sorted_dicts:
id += 1
@ -37,8 +46,39 @@ def main():
do_basic_sql(i, id, conn)
do_range_numbers(i,id,conn)
do_sources_pages(i,id,conn)
do_spell_traits(i,id,conn,traits)
# TODO do all the traits, FK stuff etc...
def do_spell_traits(i, id, conn, traits):
# get list of traits from the json and capitalize first letter
traits_json = []
for item in i['traits']:
traits_json.append(item.capitalize())
trait_ids =[]
for j in traits_json:
for k in traits:
if j == k[1]:
trait_ids.append(k[0])
# print(trait_ids)
inp = []
for j in trait_ids:
inp.append((id,j))
# print(inp)
# insert into sql
stmt = "INSERT OR REPLACE INTO spells_traits (spells_id, traits_id) VALUES (?,?)"
try:
conn.executemany(stmt, inp)
except:
print("Error updating traits")
else:
conn.commit()
def do_sources_pages(i, id, conn):
if 'source' not in i:
return

View File

@ -28,8 +28,8 @@ CREATE TABLE spellschools (
-- UNIQUE as sanity requires :)
CREATE TABLE spells (
spells_id INTEGER PRIMARY KEY,
sources_id INTEGER NOT NULL, -- manually entered right now
sources_pages TEXT, -- TODO convert to our format in spells.py
sources_id INTEGER NOT NULL, -- generated in spells.py from scraped data
sources_pages TEXT, -- generated in spells.py from scraped data
name TEXT NOT NULL UNIQUE, -- scraped from github repo
level INTEGER, -- scraped from github repo
trigger TEXT, -- TODO in spells.py
@ -55,6 +55,7 @@ CREATE TABLE spells_traits (
id INTEGER PRIMARY KEY,
spells_id INTEGER NOT NULL,
traits_id INTEGER NOT NULL,
UNIQUE(spells_id, traits_id),
FOREIGN KEY (spells_id) REFERENCES spells(spells_id),
FOREIGN KEY (traits_id) REFERENCES traits(traits_id)
);