add metagoups & search on metagroup_id

This commit is contained in:
2023-10-18 13:52:49 +02:00
parent dfd8df437e
commit d1e9136efa
4 changed files with 39 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ from eveal.database import engine
from sqlmodel import Session, SQLModel, select
from eveal import models_sde
SQLModel.metadata.drop_all(engine) # use alembic!
SQLModel.metadata.create_all(engine)
@@ -102,6 +103,25 @@ with Session(engine) as db:
print(f"Updated {total_marketgroup_links} marketgroup Parents")
print("Importing metagroups...")
with open("static_eve/sde/fsd/metaGroups.yaml", "r", encoding="utf-8") as f:
metagroups = yaml.safe_load(f)
new_metagroups = total_metagroups = 0
with Session(engine) as db:
for id, metagroup in metagroups.items():
db_metagroups = db.get(models_sde.SDEMetaGroup, id)
if not db_metagroups:
db_metagroups = models_sde.SDEMetaGroup(id=id)
db.add(db_metagroups)
new_metagroups += 1
db_metagroups.name = metagroup['nameID']['en']
db_metagroups.iconSuffix = metagroup['iconSuffix'] if 'iconSuffix' in metagroup else None
db_metagroups.icon_id = metagroup['iconID'] if 'iconID' in metagroup else None
total_metagroups += 1
db.commit()
print(f"Imported {new_metagroups} metagroups / {total_metagroups} total metagroups.")
print("Importing types...")
with open("static_eve/sde/fsd/typeIDs.yaml", "r", encoding="utf-8") as f:
types = yaml.safe_load(f)
@@ -124,6 +144,7 @@ with Session(engine) as db:
db_type.icon_id = type['iconID'] if 'iconID' in type else None
db_type.portionSize = type['portionSize']
db_type.volume = type['volume'] if 'volume' in type else None
db_type.metagroup_id = type['metaGroupID'] if 'metaGroupID' in type else None
total_types += 1
db.commit()
print(f"Imported {new_types} types / {total_types} total types.")
@@ -136,7 +157,6 @@ new_typemat = total_typemat = 0
with Session(engine) as db:
for id, material in materials.items():
for mat in material['materials']:
# db_typemat = db.exec(select(models_sde.SDETypeMaterial).where(models_sde.SDETypeMaterial.type_id == id, models_sde.SDETypeMaterial.material_type_id == mat['materialTypeID'])).one_or_none()
db_typemat = db.query(models_sde.SDETypeMaterial).filter(models_sde.SDETypeMaterial.type_id == id, models_sde.SDETypeMaterial.material_type_id == mat['materialTypeID']).one_or_none()
if not db_typemat:
db_typemat = models_sde.SDETypeMaterial()