From f1f45761bed72a41f915d78b94962cfe752ea155 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Mon, 8 May 2023 18:56:49 +0200 Subject: refactor mastodon-tl--format-poll-option --- lisp/mastodon-tl.el | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'lisp/mastodon-tl.el') diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index 7fffb77..5599609 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -1197,6 +1197,20 @@ To disable showing the stats, customize ;; POLLS +(defun mastodon-tl--format-poll-option (option-counter longest-option) + "Format a poll option. OPTION-COUNTER is just a counter. +LONGEST-OPTION is the option whose length determines the formatting." + (format "%s: %s%s%s\n" + (setq option-counter (1+ option-counter)) + (propertize (alist-get 'title option) + 'face 'success) + (make-string (1+ (- (length longest-option) + (length (alist-get 'title option)))) + ?\ ) + ;; TODO: disambiguate no votes from hidden votes + (format "[%s votes]" (or (alist-get 'votes_count option) + "0")))) + (defun mastodon-tl--get-poll (toot) "If TOOT includes a poll, return it as a formatted string." (let-alist (mastodon-tl--field 'poll toot) ; toot or reblog @@ -1208,25 +1222,12 @@ To disable showing the stats, customize (option-counter 0)) (concat "\nPoll: \n\n" (mapconcat (lambda (option) - (progn - (format "%s: %s%s%s\n" - (setq option-counter (1+ option-counter)) - (propertize (alist-get 'title option) - 'face 'success) - (make-string - (1+ - (- (length longest-option) - (length (alist-get 'title - option)))) - ?\ ) - ;; TODO: disambiguate no votes from hidden votes - (format "[%s votes]" (or (alist-get 'votes_count option) - "0"))))) + (mastodon-tl--format-poll-option option-counter longest-option)) .options "\n") "\n" (propertize - (cond (.voters_count ; sometimes it is nil + (cond (.voters_count ; sometimes it is nil (if (= .voters_count 1) (format "%s person | " .voters_count) (format "%s people | " .voters_count))) -- cgit v1.2.3