From af553d028b7f81d7cb8fcbcf5c289ea4da186a31 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Apr 2020 15:01:58 +0200 Subject: xapian: search: Sanitize date ranges in query string. --- mumi/xapian.scm | 11 +++++++++-- 1 file 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") -- cgit v1.2.3