breeding data fixed
This commit is contained in:
parent
6d23ff576f
commit
3624ac4a0c
9230
static/data/data.xml
9230
static/data/data.xml
File diff suppressed because it is too large
Load Diff
@ -1,75 +0,0 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
import sqlite3
|
||||
|
||||
DATABASE = "monsters.db"
|
||||
|
||||
|
||||
def connect_db():
|
||||
return sqlite3.connect(DATABASE)
|
||||
|
||||
|
||||
def create_tables():
|
||||
with connect_db() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS breeds (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
target TEXT NOT NULL
|
||||
);
|
||||
"""
|
||||
)
|
||||
cursor.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS breed_requirements (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
breed_id INTEGER NOT NULL,
|
||||
requirement_type TEXT NOT NULL,
|
||||
requirement_value TEXT NOT NULL,
|
||||
FOREIGN KEY (breed_id) REFERENCES breeds (id)
|
||||
);
|
||||
"""
|
||||
)
|
||||
conn.commit()
|
||||
|
||||
|
||||
def insert_breeding_data(xml_file):
|
||||
tree = ET.parse(xml_file)
|
||||
root = tree.getroot()
|
||||
|
||||
with connect_db() as conn:
|
||||
cursor = conn.cursor()
|
||||
|
||||
for breed_element in root.findall(".//breeds/breed"):
|
||||
target = breed_element.get("target")
|
||||
|
||||
cursor.execute("INSERT INTO breeds (target) VALUES (?)", (target,))
|
||||
breed_id = cursor.lastrowid
|
||||
|
||||
base_requirements = breed_element.find("./base")
|
||||
insert_breed_requirements(cursor, breed_id, base_requirements, "base")
|
||||
|
||||
mate_requirements = breed_element.find("./mate")
|
||||
insert_breed_requirements(cursor, breed_id, mate_requirements, "mate")
|
||||
|
||||
conn.commit()
|
||||
|
||||
|
||||
def insert_breed_requirements(cursor, breed_id, requirements_element, requirement_type):
|
||||
for requirement_element in requirements_element.findall("./breed-requirement"):
|
||||
family = requirement_element.get("family")
|
||||
monster = requirement_element.get("monster")
|
||||
|
||||
cursor.execute(
|
||||
"""
|
||||
INSERT INTO breed_requirements (breed_id, requirement_type, requirement_value)
|
||||
VALUES (?, ?, ?)
|
||||
""",
|
||||
(breed_id, requirement_type, family or monster),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_tables()
|
||||
insert_breeding_data("data.xml")
|
||||
print("Breeding data inserted successfully.")
|
Loading…
Reference in New Issue
Block a user