aboutsummaryrefslogtreecommitdiff
path: root/backend/server.py
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-06-20 15:06:03 +1000
committerTerry Truong <terry06890@gmail.com>2022-06-20 15:06:03 +1000
commit2374693a86532637ccf472af5960e68851308528 (patch)
tree4eec38d1d3fdad6bfdbf61a5cd37a7710fee791c /backend/server.py
parent0dbcc5607e977e82a15f1f664843343c00c8c0b4 (diff)
Make server order children by num-tips
Diffstat (limited to 'backend/server.py')
-rwxr-xr-xbackend/server.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/backend/server.py b/backend/server.py
index 9191d8a..5525eb5 100755
--- a/backend/server.py
+++ b/backend/server.py
@@ -47,9 +47,19 @@ def lookupNodes(names, useReducedTree):
"commonName": None,
"imgName": None,
}
+ # Get child info
query = f"SELECT node, child FROM {edgesTable} WHERE node IN ({queryParamStr})"
for (nodeName, childName) in cur.execute(query, names):
nodeObjs[nodeName]["children"].append(childName)
+ # Order children by tips
+ for (nodeName, nodeObj) in nodeObjs.items():
+ childList = nodeObj["children"]
+ childToTips = {}
+ query = "SELECT name, tips FROM {} WHERE name IN ({})".format(nodesTable, ",".join(["?"] * len(childList)))
+ for (n, tips) in cur.execute(query, childList):
+ childToTips[n] = tips
+ childList.sort(key=lambda n: childToTips[n], reverse=True)
+ # Get parent info
query = f"SELECT node, child, p_support FROM {edgesTable} WHERE child IN ({queryParamStr})"
for (nodeName, childName, pSupport) in cur.execute(query, names):
nodeObjs[childName]["parent"] = None if nodeName == "" else nodeName