From 695c8d1c223036459607a1aca0b200b081c8f1cb Mon Sep 17 00:00:00 2001 From: Heiko Joerg Schick Date: Thu, 7 Sep 2023 22:38:17 +0200 Subject: [PATCH] Added function to filter by primary category --- serve.py | 9 +++++++++ templates/index.html | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/serve.py b/serve.py index 32e7894..66a0839 100644 --- a/serve.py +++ b/serve.py @@ -215,6 +215,7 @@ def main(): opt_q = request.args.get('q', '') # search request in the text box opt_tags = request.args.get('tags', default_tags) # tags to rank by if opt_rank == 'tag' opt_pid = request.args.get('pid', '') # pid to find nearest neighbors to + opt_category_filter = request.args.get('category', '') # primary category to filter opt_time_filter = request.args.get('time_filter', default_time_filter) # number of days to filter by opt_skip_have = request.args.get('skip_have', default_skip_have) # hide papers we already have? opt_svm_c = request.args.get('svm_c', '') # svm C parameter @@ -246,6 +247,14 @@ def main(): else: raise ValueError("opt_rank %s is not a thing" % (opt_rank, )) + # filter by primary category + if opt_category_filter: + pdb = get_papers() + kv = {k:v for k,v in pdb.items()} # read all of metas to memory at once, for efficiency + keep = [i for i,pid in enumerate(pids) if (kv[pid]['arxiv_primary_category']['term']) + == opt_category_filter] + pids, scores = [pids[i] for i in keep], [scores[i] for i in keep] + # filter by time if opt_time_filter: mdb = get_metas() diff --git a/templates/index.html b/templates/index.html index 9811087..b941c75 100644 --- a/templates/index.html +++ b/templates/index.html @@ -54,6 +54,10 @@ var move_page = function(int_offset) { + + + +