diff options
Diffstat (limited to 'backend/server.py')
| -rwxr-xr-x | backend/server.py | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/backend/server.py b/backend/server.py index 8e4a90f..f0292aa 100755 --- a/backend/server.py +++ b/backend/server.py @@ -28,25 +28,31 @@ dbCon.enable_load_extension(True) dbCon.load_extension('./data/spellfix') # Some functions def lookupNodes(names): + # Get node info nodeObjs = {} cur = dbCon.cursor() - # Get node info - query = "SELECT name, children, parent, tips, p_support FROM nodes WHERE" \ - " name IN ({})".format(",".join(["?"] * len(names))) - namesForImgs = [] - firstSubnames = {} - secondSubnames = {} - for row in cur.execute(query, names): - name = row[0] - nodeObj = { - "children": json.loads(row[1]), - "parent": None if row[2] == "" else row[2], - "tips": row[3], - "pSupport": True if row[4] == 1 else False, + query = "SELECT name, tips from nodes WHERE name IN ({})".format(",".join(["?"] * len(names))) + for (nodeName, tips) in cur.execute(query, names): + nodeObjs[nodeName] = { + "children": [], + "parent": None, + "tips": tips, + "pSupport": False, "commonName": None, "imgName": None, } - # Check for image file + query = "SELECT node, child FROM edges WHERE node IN ({})".format(",".join(["?"] * len(names))) + for (nodeName, childName) in cur.execute(query, names): + nodeObjs[nodeName]["children"].append(childName) + query = "SELECT node, child, p_support FROM edges WHERE child IN ({})".format(",".join(["?"] * len(names))) + for (nodeName, childName, pSupport) in cur.execute(query, names): + nodeObjs[childName]["parent"] = nodeName + nodeObjs[childName]["pSupport"] = pSupport + # Get names for image files + namesForImgs = [] + firstSubnames = {} + secondSubnames = {} + for (name, nodeObj) in nodeObjs.items(): match = re.fullmatch(r"\[(.+) \+ (.+)]", name) if match == None: namesForImgs.append(name) @@ -56,8 +62,6 @@ def lookupNodes(names): namesForImgs.extend([name1, name2]) firstSubnames[name1] = name secondSubnames[name2] = name - # Add node object - nodeObjs[name] = nodeObj # Get image names query = "SELECT name, id FROM eol_ids WHERE" \ " name IN ({})".format(",".join(["?"] * len(namesForImgs))) |
