got spell traits inserting based on github data
parent
a2690994ae
commit
e8ab1860d3
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue