From 0c1b8b01908bb531e78a5057107d48cfe31ec9ec Mon Sep 17 00:00:00 2001 From: Zed Date: Fri, 13 Sep 2019 13:20:08 +0200 Subject: [PATCH] Add text field to search queries --- src/routes/timeline.nim | 2 +- src/search.nim | 10 ++++++++-- src/types.nim | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/routes/timeline.nim b/src/routes/timeline.nim index 63edc01..09c2958 100644 --- a/src/routes/timeline.nim +++ b/src/routes/timeline.nim @@ -84,7 +84,7 @@ proc createTimelineRouter*(cfg: Config) = get "/@name/search": cond '.' notin @"name" - let query = initQuery(@"filter", @"include", @"not", @"sep", @"name") + let query = initQuery(@"filter", @"include", @"not", @"sep", @"text", @"name") respTimeline(await showTimeline(@"name", @"after", some(query), cookiePrefs(), getPath(), cfg.title, "")) diff --git a/src/search.nim b/src/search.nim index 7ad703e..c7b118b 100644 --- a/src/search.nim +++ b/src/search.nim @@ -18,10 +18,12 @@ const posPrefix = "thGAVUV0VFVBa" posSuffix = "EjUAFQAlAFUAFQAA" -proc initQuery*(filters, includes, excludes, separator: string; name=""): Query = +proc initQuery*(filters, includes, excludes, separator, text: string; + name=""): Query = var sep = separator.strip().toUpper() Query( kind: custom, + text: text, filters: filters.split(",").filterIt(it in validFilters), includes: includes.split(",").filterIt(it in validFilters), excludes: excludes.split(",").filterIt(it in validFilters), @@ -60,7 +62,9 @@ proc genQueryParam*(query: Query): string = for e in query.excludes: filters.add "-filter:" & e - return strip(param & filters.join(&" {query.sep} ")) + result = strip(param & filters.join(&" {query.sep} ")) + if query.text.len > 0: + result &= " " & query.text proc genQueryUrl*(query: Query): string = if query.kind == multi: return "?" @@ -77,6 +81,8 @@ proc genQueryUrl*(query: Query): string = params &= "not=" & query.excludes.join(",") if query.sep.len > 0: params &= "sep=" & query.sep + if query.text.len > 0: + params &= "text=" & query.text if params.len > 0: result &= params.join("&") & "&" diff --git a/src/types.nim b/src/types.nim index cbdb213..772c8ed 100644 --- a/src/types.nim +++ b/src/types.nim @@ -61,6 +61,7 @@ type Query* = object kind*: QueryKind + text*: string filters*: seq[string] includes*: seq[string] excludes*: seq[string]