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