aboutsummaryrefslogtreecommitdiff
path: root/backend/server.py
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-05-01 12:34:55 +1000
committerTerry Truong <terry06890@gmail.com>2022-05-01 12:37:31 +1000
commit45a94f3b3f2a0ecbae5b36813ebdd8b0e97d6c3e (patch)
tree014e86b453218e93a3f907f3228614d029b7aa69 /backend/server.py
parent9deeb448e550fe28c22e5a9c4acc2adcfed71571 (diff)
Use substring search
Also display common-name in search suggestions, and add more-results indicator.
Diffstat (limited to 'backend/server.py')
-rwxr-xr-xbackend/server.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/backend/server.py b/backend/server.py
index 15d0960..0786ee8 100755
--- a/backend/server.py
+++ b/backend/server.py
@@ -11,6 +11,7 @@ dbFile = "data/data.db"
imgDir = "../public/img/"
NODE_REQ_DEPTH = 1
# For a /node?name=name1 request, respond with name1's node, and descendent nodes in a subtree to some depth > 0
+SEARCH_SUGG_LIMIT = 5
usageInfo = f"usage: {sys.argv[0]}\n"
usageInfo += "Starts a server that listens for GET requests to http://" + hostname + ":" + str(port) + ".\n"
@@ -62,9 +63,15 @@ def nodeNameToFile(name, cur):
def lookupName(name):
cur = dbCon.cursor()
results = []
- for row in cur.execute("SELECT name, alt_name FROM names WHERE alt_name = ?", (name,)):
- results.append(row[0])
- return json.dumps(results)
+ hasMore = False
+ for row in cur.execute(
+ "SELECT DISTINCT name, alt_name FROM names WHERE alt_name LIKE ? LIMIT ?",
+ (name + "%", SEARCH_SUGG_LIMIT + 1)):
+ results.append({"name": row[0], "altName": row[1]})
+ if len(results) > SEARCH_SUGG_LIMIT:
+ hasMore = True
+ del results[-1]
+ return json.dumps([results, hasMore])
class DbServer(BaseHTTPRequestHandler):
def do_GET(self):