[chronometrist] add more example queries

This commit is contained in:
contrapunctus 2021-07-06 06:41:00 +05:30
parent 8f5ef93023
commit 8484fff8b3
1 changed files with 35 additions and 3 deletions

View File

@ -721,10 +721,42 @@ An example of querying the Chronometrist file data - finding out how much time I
sum (chronometrist-interval plist) into seconds
and do (cl-incf count)
finally return
(format "%s over %s days."
(ts-human-format-duration seconds)
count))
(unless (zerop seconds)
(format "%s over %s days."
(ts-human-format-duration seconds)
count)))
#+END_SRC
Intervals and durations for task Exercise.
#+BEGIN_SRC emacs-lisp :tangle no :load no
(chronometrist-loop-file for plist in chronometrist-file
with count = 0
when
(equal (plist-get plist :name) "Exercise")
collect
(let* ((plist (copy-list plist))
(interval-seconds (chronometrist-interval plist))
(start (plist-get plist :start)))
(plist-put plist :duration (ts-human-format-duration interval-seconds))
(plist-put plist :date (seq-take start 10))
(chronometrist-plist-remove plist :start :stop)))
#+END_SRC
Unique key-values for task "Exercise"
#+BEGIN_SRC emacs-lisp :tangle no :load no
(chronometrist-loop-file for plist in chronometrist-file
when
(equal (plist-get plist :name) "Exercise")
collect (chronometrist-plist-key-values plist) into key-values
finally do
(let ((buffer (get-buffer-create (generate-new-buffer-name "chronometrist-query"))))
(with-current-buffer buffer
(->> (cl-remove-duplicates key-values)
(seq-filter #'identity)
(format "%S")
(insert))
(emacs-lisp-mode)
(switch-to-buffer buffer))))
#+END_SRC
*** WISH emms
1. [ ] make toggle command for emms-start/emms-stop