Copy sports data to kill ring
parent
3d19def8f7
commit
3faf36b9e3
56
init.org
56
init.org
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue