aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-toot.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mastodon-toot.el')
-rw-r--r--lisp/mastodon-toot.el19
1 files changed, 17 insertions, 2 deletions
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el
index d6502f8..76c2f87 100644
--- a/lisp/mastodon-toot.el
+++ b/lisp/mastodon-toot.el
@@ -126,6 +126,9 @@ Valid values are \"direct\", \"private\" (followers-only), \"unlisted\", and \"p
"Buffer-local variable to hold the list of media attachments.")
(make-variable-buffer-local 'mastodon-toot--media-attachments)
+(defvar mastodon-toot--max-toot-chars nil
+ "The maximum allowed characters count for a single toot.")
+
(defvar mastodon-toot-mode-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "C-c C-c") #'mastodon-toot--send)
@@ -141,6 +144,15 @@ Valid values are \"direct\", \"private\" (followers-only), \"unlisted\", and \"p
map)
"Keymap for `mastodon-toot'.")
+(defun mastodon-toot--get-max-toot-chars ()
+ ""
+ (let ((instance-json (mastodon-http--get-json
+ (concat mastodon-instance-url
+ "/api/v1/instance"))))
+ (setq mastodon-toot--max-toot-chars
+ (number-to-string
+ (cdr (assoc 'max_toot_chars instance-json))))))
+
(defun mastodon-toot--action-success (marker byline-region remove)
"Insert/remove the text MARKER with 'success face in byline.
@@ -703,8 +715,9 @@ If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var."
(point-min))))
(add-text-properties (car count-region) (cdr count-region)
(list 'display
- (format "%s characters"
- (- (point-max) (cdr header-region)))))
+ (format "%s/%s characters"
+ (- (point-max) (cdr header-region))
+ mastodon-toot--max-toot-chars)))
(add-text-properties (car visibility-region) (cdr visibility-region)
(list 'display
(format "Visibility: %s"
@@ -736,6 +749,8 @@ If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var."
(mastodon-toot--display-docs-and-status-fields)
(mastodon-toot--setup-as-reply reply-to-user reply-to-id reply-json))
(mastodon-toot-mode t)
+ (unless mastodon-toot--max-toot-chars
+ (mastodon-toot--get-max-toot-chars))
(when mastodon-toot--enable-completion-for-mentions
(set (make-local-variable 'company-backends)
(add-to-list 'company-backends 'mastodon-toot--mentions-completion))