diff --git a/main/astrodatagui/db/StarsDB.py b/main/astrodatagui/db/StarsDB.py index 9405d30..bae81c5 100644 --- a/main/astrodatagui/db/StarsDB.py +++ b/main/astrodatagui/db/StarsDB.py @@ -75,6 +75,18 @@ class StarDB(): FOREIGN KEY (sourceName) REFERENCES sequenceSourceNames(sourceName) );""") + self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS starInfo + ( + mainName TEXT, + spType TEXT, + rotVel REAL, + rotVelUnit TEXT, + dist REAL, + distUnit TEXT, + PRIMARY KEY (mainName), + FOREIGN KEY (mainName) REFERENCES starnames(mainName) + );""") + self.insertDefaultValues() self.connection.commit() @@ -92,8 +104,20 @@ class StarDB(): starnames(mainName, altName) VALUES(\"{mainName}\", \"{an["ID"]}\")""") - def insertStar(self, mainName: str, altNames, productManifest): + def insertStarInformations(self, mainName, spType, rotVel, rotVelUnit, + dist, distUnit): + print(f"""INSERT OR IGNORE INTO + starInfo(mainName, spType, rotVel, rotVelUnit, dist, distUnit) + VALUES(\"{mainName}\", \"{spType}\", {rotVel}, \"{rotVelUnit}\", {dist}, \"{distUnit}\")""") + self.dbCursor.execute(f"""INSERT OR IGNORE INTO + starInfo(mainName, spType, rotVel, rotVelUnit, dist, distUnit) + VALUES(\"{mainName}\", \"{spType}\", {rotVel}, \"{rotVelUnit}\", {dist}, \"{distUnit}\")""") + + def insertStar(self, mainName: str, altNames, productManifest, + spType, rotVel, rotVelUnit, dist, distUnit): self.insertStarAlternativeNames(mainName, altNames) + self.insertStarInformations(mainName, spType, rotVel, rotVelUnit, + dist, distUnit) for pm in productManifest: file = pm["Local Path"] source = pm["source"] @@ -110,7 +134,7 @@ class StarDB(): ORDER BY mainName""") return res.fetchall() - def getStarData(self, mainName): + def getStarSequences(self, mainName): res = self.dbCursor.execute(f"""SELECT sourceName, sequence FROM stars WHERE mainName = \"{mainName}\" ORDER BY @@ -118,6 +142,12 @@ class StarDB(): sequence ASC""") return res.fetchall() + def getStarInfos(self, mainName): + res = self.dbCursor.execute(f"""SELECT spType, rotVel, rotVelUnit, dist, distUnit + FROM starInfo + WHERE mainName = \"{mainName}\"""") + return res.fetchone() + def getFilePath(self, mainName, source, sequence): print(f"Trying for {mainName}, {source}, {sequence}") res = self.dbCursor.execute(f"""SELECT filename FROM stars