diff options
author | marty hiatt <martianhiatus [a t] riseup [d o t] net> | 2022-11-29 16:16:47 +0100 |
---|---|---|
committer | marty hiatt <martianhiatus [a t] riseup [d o t] net> | 2022-11-29 16:16:47 +0100 |
commit | 24fec2f262123264c2b84d4f9c902b477b731bbb (patch) | |
tree | 64e0ab63cf786c6df9b4b707405d7ea9174f772d | |
parent | 3ded5be6dcf964f35eec22a7efaaf74973d4d385 (diff) |
display value of --scheduled-for in org-read-date if set
-rw-r--r-- | lisp/mastodon-toot.el | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index c058296..17b57ed 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -81,7 +81,7 @@ (autoload 'mastodon-http--put "mastodon-http") (autoload 'mastodon-tl--symbol "mastodon-tl") (autoload 'mastodon-tl--view-scheduled-toots "mastodon-tl") - +(autoload 'mastodon-tl--cancel-scheduled-toot "mastodon-toot") (autoload 'org-read-date "org") (autoload 'iso8601-parse "iso8601") @@ -1164,7 +1164,10 @@ With RESCHEDULE, reschedule the scheduled toot at point." (interactive) (let* ((id (when reschedule (get-text-property (point) 'id))) ;; TODO if reschedule, set org-read-date to scheduled time - (time-value (org-read-date nil t nil "Schedule toot:")) + (time-value + (org-read-date t t nil "Schedule toot:" + ;; default to scheduled timestamp if already set: + (mastodon-toot--iso-to-org mastodon-toot--scheduled-for))) (iso8601-str (format-time-string "%FT%T%z" time-value)) (msg-str (format-time-string "%d-%m-%y at %H:%M[%z]" time-value))) (if (not reschedule) @@ -1172,10 +1175,12 @@ With RESCHEDULE, reschedule the scheduled toot at point." (setq-local mastodon-toot--scheduled-for iso8601-str) (message (format "Toot scheduled for %s." msg-str))) (let* ((args (when reschedule `(("scheduled_at" . ,iso8601-str)))) - (url (when reschedule (mastodon-http--api (format "scheduled_statuses/%s" id)))) + (url (when reschedule (mastodon-http--api + (format "scheduled_statuses/%s" id)))) (response (mastodon-http--put url args))) (mastodon-http--triage response (lambda () + ;; reschedule means we are in scheduled toots view: (mastodon-tl--view-scheduled-toots) (message (format "Toot rescheduled for %s." msg-str)))))))) @@ -1186,6 +1191,11 @@ With RESCHEDULE, reschedule the scheduled toot at point." (encoded (encode-time decoded))) (format-time-string "%d-%m-%y, %H:%M[%z]" encoded))) +(defun mastodon-toot--iso-to-org (ts) + "Convert ISO8601 timestamp TS to something `org-read-date' can handle." + (let* ((decoded (iso8601-parse ts))) + (encode-time decoded))) + ;; we'll need to revisit this if the binds get ;; more diverse than two-chord bindings (defun mastodon-toot--get-mode-kbinds () |