summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2020-04-22 15:01:58 +0200
committerRicardo Wurmus <rekado@elephly.net>2020-04-22 15:01:58 +0200
commitaf553d028b7f81d7cb8fcbcf5c289ea4da186a31 (patch)
tree15ff90cee31245614242721bd660c2c9e72e154c
parentab5df6ea74d6275a555b8a615131df876159b4f1 (diff)
xapian: search: Sanitize date ranges in query string.
-rw-r--r--mumi/xapian.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/mumi/xapian.scm b/mumi/xapian.scm
index b00e8ee..9630274 100644
--- a/mumi/xapian.scm
+++ b/mumi/xapian.scm
@@ -205,9 +205,16 @@ messages and index their contents in the Xapian database at DBPATH."
;; closes the database once we're done.
(call-with-database dbpath
(lambda (db)
- (let (;; Parse querystring passing a stemmer and suitable
+ (let* ((querystring*
+ (string-join (map (lambda (token)
+ (if (or (string-prefix? "date:" token)
+ (string-prefix? "mdate:" token))
+ (sanitize-date-range token)
+ token))
+ (string-tokenize querystring))))
+ ;; Parse querystring passing a stemmer and suitable
;; prefixes for field search.
- (query (parse-query* querystring
+ (query (parse-query* querystring*
#:stemmer (make-stem "en")
#:prefixes '(("submitter" . "A")
("author" . "XA")