diff options
| -rw-r--r-- | lisp/mastodon-toot.el | 63 | 
1 files changed, 33 insertions, 30 deletions
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index b9e97b6..f6f7945 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -1232,36 +1232,39 @@ With RESCHEDULE, reschedule the scheduled toot at point without editing."    ;; original idea by christian tietze, thanks!    ;; https://codeberg.org/martianh/mastodon.el/issues/285    (interactive) -  (if (mastodon-tl--buffer-type-eq 'edit-toot) -      (message "You can't schedule toots you're editing.") -    (let* ((id (when reschedule (get-text-property (point) 'id))) -           (ts (when reschedule -                 (alist-get 'scheduled_at -                            (get-text-property (point) 'scheduled-json)))) -           (time-value -            (org-read-date t t nil "Schedule toot:" -                           ;; default to scheduled timestamp if already set: -                           (mastodon-toot--iso-to-org -                            ;; we are rescheduling without editing: -                            (or ts -                                ;; we are maybe editing the scheduled toot: -                                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) -          (progn -            (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)))) -               (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))))))))) +  (cond ((mastodon-tl--buffer-type-eq 'edit-toot) +         (message "You can't schedule toots you're editing.")) +        ((not (mastodon-tl--buffer-type-eq 'new-toot)) +         (message "You can only schedule toots from the compose toot buffer.")) +        (t +         (let* ((id (when reschedule (get-text-property (point) 'id))) +                (ts (when reschedule +                      (alist-get 'scheduled_at +                                 (get-text-property (point) 'scheduled-json)))) +                (time-value +                 (org-read-date t t nil "Schedule toot:" +                                ;; default to scheduled timestamp if already set: +                                (mastodon-toot--iso-to-org +                                 ;; we are rescheduling without editing: +                                 (or ts +                                     ;; we are maybe editing the scheduled toot: +                                     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) +               (progn +                 (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)))) +                    (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))))))))))  (defun mastodon-toot--iso-to-human (ts)    "Format an ISO8601 timestamp TS to be more human-readable."  | 
