Copy sports data to kill ring

production
contrapunctus 2022-06-19 22:31:45 +05:30
parent 3d19def8f7
commit 3faf36b9e3
1 changed files with 30 additions and 26 deletions

View File

@ -2315,38 +2315,42 @@ What if...
#+END_SRC
**** my-chronometrist-insert-exercise-data
**** my-chronometrist-copy-exercise-data
:PROPERTIES:
:CUSTOM_ID: my-chronometrist-insert-exercise-data
:CUSTOM_ID: my-chronometrist-copy-exercise-data
:END:
#+BEGIN_SRC emacs-lisp
(defun my-chronometrist-insert-exercise-data (&optional date)
(defun my-chronometrist-copy-exercise-data (&optional date)
"Add exercise data from OsmAnd tracks to Chronometrist.
Only tracks for today's date are considered."
(interactive)
(when-let* ((day (if date
(parse-iso8601-time-string date)
(current-time)))
(dir (concat "/media/data/phone/contrapunctus/Nokia 6.1/Android/data/net.osmand.plus/files/tracks/rec/"
(format-time-string "%+4Y-%m/" day)))
(dir-check (file-exists-p dir))
(files (directory-files dir)))
(cl-loop with activity
for file in files
when (and (string-match-p (format-time-string "^%F_" day)
file)
(or (and (string-match-p "(walk)" file)
(setq activity :walking))
(and (string-match-p "(run)" file)
(setq activity :running))))
collect
(with-current-buffer
(get-buffer-create (find-file-noselect (concat dir file)))
(append '(:name "Exercise")
`(,activity (,(floor (my-gpx-distance file)) . "meters"))
(my-get-gpx-timestamps))
;; (chronometrist-insert (chronometrist-active-backend))
))))
(if-let* ((day (if date
(parse-iso8601-time-string date)
(current-time)))
(dir (concat "/media/data/phone/contrapunctus/Nokia 6.1/Android/data/net.osmand.plus/files/tracks/rec/"
(format-time-string "%+4Y-%m/" day)))
(dir-check (file-exists-p dir))
activity
(files (cl-loop for file in (directory-files dir)
when (and (string-match-p (format-time-string "^%F_" day)
file)
(or (and (string-match-p "(walk)" file)
(setq activity :walking))
(and (string-match-p "(run)" file)
(setq activity :running))))
collect file))
(plists (cl-loop for file in files collect
(with-current-buffer
(get-buffer-create (find-file-noselect (concat dir file)))
(append '(:name "Exercise")
`(,activity (,(floor (my-gpx-distance file)) . "meters"))
(my-get-gpx-timestamps))
;; (chronometrist-insert (chronometrist-active-backend))
)))
(string (format "%S" plists)))
(progn (kill-new string)
(message "Copied %s to kill ring" string))
(message "No suitable GPX files found")))
#+END_SRC
***** my-great-circle-distance