diff options
Diffstat (limited to 'lisp/mastodon-tl.el')
-rw-r--r-- | lisp/mastodon-tl.el | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index cf87c0a..b7c14e2 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -721,33 +721,35 @@ it is `mastodon-tl--byline-boosted'" options-number-seq)) (options-alist (mapcar* 'cons options-numbers options-titles)) ;; we display both option number and the option title - ;; but also store option number as cdr, as we need it alone below + ;; but also store both as cons cell as cdr, as we need it below (candidates (mapcar (lambda (cell) (cons (format "%s | %s" (car cell) (cdr cell)) - (car cell))) + cell)) options-alist))) (if (null (mastodon-tl--field 'poll (mastodon-tl--property 'toot-json))) (message "No poll here.") - ;; var "option" = just the cdr, just the option number + ;; var "option" = just the cdr, a cons of option number and desc (cdr (assoc (completing-read "Poll option to vote for: " candidates - nil ;predicate - t) ;require match + nil ; (predicate) + t) ; require match candidates)))))) (if (null (mastodon-tl--field 'poll (mastodon-tl--property 'toot-json))) (message "No poll here.") - ;; TODO: match option number up to option titles so we can message - ;; the full option description, not just the number (let* ((toot (mastodon-tl--property 'toot-json)) (poll (mastodon-tl--field 'poll toot)) (poll-id (cdr (assoc 'id poll))) (url (mastodon-http--api (format "polls/%s/votes" poll-id))) - (arg `(("choices[]" . ,option))) + ;; need to zero-index our option: + (option-as-arg (number-to-string (1- (string-to-number (car option))))) + ;; (option-indexed + (arg `(("choices[]" . ,option-as-arg))) (response (mastodon-http--post url arg nil))) (mastodon-http--triage response (lambda () - (message "You voted for option %s!" option)))))) + (message "You voted for option %s: %s!" + (car option) (cdr option))))))) (defun mastodon-tl--toot (toot) "Formats TOOT and insertes it into the buffer." |