aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorColin Okay <okay@toyful.space>2022-02-25 16:22:33 -0600
committerColin Okay <okay@toyful.space>2022-02-25 16:22:33 -0600
commit4a8a81671aad1163b425438b18d676b42112109d (patch)
treef3494f215aa344e0063bd71ca520201e028e470d /src
parente6d10c9b4d57fa5330f7be1a62fbba44622f5a60 (diff)
all-flagged implementation
Diffstat (limited to 'src')
-rw-r--r--src/lib.lisp31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/lib.lisp b/src/lib.lisp
index 3eefc63..58d071c 100644
--- a/src/lib.lisp
+++ b/src/lib.lisp
@@ -132,14 +132,14 @@ the directories that appear in the value of that variable."
(progn ,@body)
(format t "The last search was shorter than ~a" ,nvar)))))
-;;; API REQUEST FUNCTIONS
-
(defun print-item-explanation (number)
(with-cached-result (ol number)
(when (getf ol :explanation)
(princ #\newline)
(princ (getf ol :explanation)))))
+;;; API REQUEST FUNCTIONS
+
(defun flag-item (item-number)
(with-cached-result (ol item-number)
(ensure-config)
@@ -401,6 +401,22 @@ the directories that appear in the value of that variable."
(format t "~% by: ~12a tags: ~{~a~^ ~}" (getf oneliner :createdby) (getf oneliner :tags))
(format t "~%~% ~a~%~%" (getf oneliner :oneliner)))
+(defun cache-and-print-search-response (response)
+ (cache-search-results-to-last-search-file
+ (loop for number from 1
+ for oneliner in (getf (jonathan:parse response) :oneliners)
+ collect (list* :result-number number oneliner)
+ do (print-oneliner-result-for-user number oneliner))))
+
+(defun all-flagged-oneliners (&optional limit)
+ (ensure-config)
+ (api:request-with
+ (:host (host))
+ (let ((response
+ (if limit
+ (api:get--oneliners-all-flagged :limit limit)
+ (api:get--oneliners-all-flagged))))
+ (cache-and-print-search-response response))))
(defun search-for-oneliners (terms limit not-flagged-p)
(assert (loop for term in terms never (find #\, term) ))
@@ -411,16 +427,7 @@ the directories that appear in the value of that variable."
(api:get--oneliners :tags (str:join "," terms)
:limit limit
:notflagged (if not-flagged-p "true" "false")))))
- (handler-case
- (a:when-let (oneliners
- (getf (jonathan:parse response) :oneliners))
- (cache-search-results-to-last-search-file
- (loop for number from 1
- for oneliner in oneliners
- collect (list* :result-number number oneliner)
- do (print-oneliner-result-for-user number oneliner)))
- (format t "Run a command with: ol NUMBER [ARGS...]~%")))))
-
+ (cache-and-print-search-response response)))
;;; RUNNING THINGS IN THE SHELL.