Write command my-copy-gpx-timestamps

This commit is contained in:
contrapunctus 2022-01-27 23:26:41 +05:30
parent f9ae684967
commit 5b5b2fd41b
1 changed files with 19 additions and 0 deletions

View File

@ -2417,6 +2417,25 @@ What if...
:load-path "/media/data/anon/Documents/Text Files/programming/elisp/chronometrist/elisp/")
#+END_SRC
#+BEGIN_SRC emacs-lisp
(defun my-copy-gpx-timestamps ()
"Copy ISO-8601 timestamps from GPX data as ISO-8601 timestamps in local time."
(interactive)
(let* ((dom (libxml-parse-xml-region (point-min) (point-max)))
(trkseg (esxml-query "trkseg" dom))
(first-trkpt (third trkseg))
(first-iso (second (alist-get 'time first-trkpt)))
(first-unix (parse-iso8601-time-string first-iso))
(last-trkpt (first (last trkseg)))
(last-iso (second (alist-get 'time last-trkpt)))
(last-unix (parse-iso8601-time-string last-iso))
(plist (list :start (chronometrist-format-time-iso8601 first-unix)
:stop (chronometrist-format-time-iso8601 last-unix)))
(string (apply #'format "%S %S\n%S %S" plist)))
(kill-new string)
(apply #'message "Copied %S %S %S %S to kill ring" plist)))
#+END_SRC
*** count-expressions
*** querying data
An example of querying the Chronometrist file data - finding out how much time I've spent on tasks matching a certain criteria.