got spell traits inserting based on github data
parent
a2690994ae
commit
e8ab1860d3
|
@ -30,6 +30,15 @@ def main():
|
||||||
## Get database connection
|
## Get database connection
|
||||||
conn = sqlite3.connect('../../pf2.db')
|
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
|
id = 0
|
||||||
for i in sorted_dicts:
|
for i in sorted_dicts:
|
||||||
id += 1
|
id += 1
|
||||||
|
@ -37,8 +46,39 @@ def main():
|
||||||
do_basic_sql(i, id, conn)
|
do_basic_sql(i, id, conn)
|
||||||
do_range_numbers(i,id,conn)
|
do_range_numbers(i,id,conn)
|
||||||
do_sources_pages(i,id,conn)
|
do_sources_pages(i,id,conn)
|
||||||
|
do_spell_traits(i,id,conn,traits)
|
||||||
# TODO do all the traits, FK stuff etc...
|
# 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):
|
def do_sources_pages(i, id, conn):
|
||||||
if 'source' not in i:
|
if 'source' not in i:
|
||||||
return
|
return
|
||||||
|
|
|
@ -28,8 +28,8 @@ CREATE TABLE spellschools (
|
||||||
-- UNIQUE as sanity requires :)
|
-- UNIQUE as sanity requires :)
|
||||||
CREATE TABLE spells (
|
CREATE TABLE spells (
|
||||||
spells_id INTEGER PRIMARY KEY,
|
spells_id INTEGER PRIMARY KEY,
|
||||||
sources_id INTEGER NOT NULL, -- manually entered right now
|
sources_id INTEGER NOT NULL, -- generated in spells.py from scraped data
|
||||||
sources_pages TEXT, -- TODO convert to our format in spells.py
|
sources_pages TEXT, -- generated in spells.py from scraped data
|
||||||
name TEXT NOT NULL UNIQUE, -- scraped from github repo
|
name TEXT NOT NULL UNIQUE, -- scraped from github repo
|
||||||
level INTEGER, -- scraped from github repo
|
level INTEGER, -- scraped from github repo
|
||||||
trigger TEXT, -- TODO in spells.py
|
trigger TEXT, -- TODO in spells.py
|
||||||
|
@ -55,6 +55,7 @@ CREATE TABLE spells_traits (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
spells_id INTEGER NOT NULL,
|
spells_id INTEGER NOT NULL,
|
||||||
traits_id INTEGER NOT NULL,
|
traits_id INTEGER NOT NULL,
|
||||||
|
UNIQUE(spells_id, traits_id),
|
||||||
FOREIGN KEY (spells_id) REFERENCES spells(spells_id),
|
FOREIGN KEY (spells_id) REFERENCES spells(spells_id),
|
||||||
FOREIGN KEY (traits_id) REFERENCES traits(traits_id)
|
FOREIGN KEY (traits_id) REFERENCES traits(traits_id)
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue