From 5011f6634c66d0f803d60a13a471f17f0f307291 Mon Sep 17 00:00:00 2001 From: mousebot Date: Tue, 11 Jan 2022 19:10:51 +0100 Subject: FIX fetching max toot length from server some servers have 'max_toot_chars, but others seem to have 'max_characters, under statuses, under configuation. we allow for both types, but also we check our var isn't nil before trying to check it's length, which broke toot--send in some cases. --- lisp/mastodon-toot.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'lisp/mastodon-toot.el') diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index befffee..22699f1 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -162,11 +162,18 @@ Valid values are \"direct\", \"private\" (followers-only), (defun mastodon-toot--get-max-toot-chars-callback (json-response) "Set max_toot_chars returned in JSON-RESPONSE and display in new toot buffer." + (let ((max-chars + (or + (alist-get 'max_toot_chars json-response) + ;; some servers have this instead: + (alist-get 'max_characters + (alist-get 'statuses + (alist-get 'configuration + json-response)))))) (setq mastodon-toot--max-toot-chars - (number-to-string - (alist-get 'max_toot_chars json-response))) + (number-to-string max-chars)) (with-current-buffer "*new toot*" - (mastodon-toot--update-status-fields))) + (mastodon-toot--update-status-fields)))) (defun mastodon-toot--action-success (marker byline-region remove) "Insert/remove the text MARKER with 'success face in byline. @@ -493,7 +500,8 @@ If media items have been attached and uploaded with (not (= (length mastodon-toot--media-attachments) (length mastodon-toot--media-attachment-ids))))) (message "Something is wrong with your uploads. Wait for them to complete or try again.")) - ((> (length toot) (string-to-number mastodon-toot--max-toot-chars)) + ((and mastodon-toot--max-toot-chars + (> (length toot) (string-to-number mastodon-toot--max-toot-chars))) (message "Looks like your toot is longer than that maximum allowed length.")) (empty-toot-p (message "Empty toot. Cowardly refusing to post this.")) -- cgit v1.2.3 From a6e43f8b4956e970b72f52e3a137e9a5cd43f2ed Mon Sep 17 00:00:00 2001 From: mousebot Date: Wed, 12 Jan 2022 15:11:44 +0100 Subject: keep mastodon-toot--max-toot-chars a number not a string. we use it as a number various times so let's leave it a number, then convert to string for display in toot info. --- lisp/mastodon-toot.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lisp/mastodon-toot.el') diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index 22699f1..746b7d4 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -170,8 +170,7 @@ Valid values are \"direct\", \"private\" (followers-only), (alist-get 'statuses (alist-get 'configuration json-response)))))) - (setq mastodon-toot--max-toot-chars - (number-to-string max-chars)) + (setq mastodon-toot--max-toot-chars max-chars) (with-current-buffer "*new toot*" (mastodon-toot--update-status-fields)))) @@ -501,7 +500,7 @@ If media items have been attached and uploaded with (length mastodon-toot--media-attachment-ids))))) (message "Something is wrong with your uploads. Wait for them to complete or try again.")) ((and mastodon-toot--max-toot-chars - (> (length toot) (string-to-number mastodon-toot--max-toot-chars))) + (> (length toot) mastodon-toot--max-toot-chars)) (message "Looks like your toot is longer than that maximum allowed length.")) (empty-toot-p (message "Empty toot. Cowardly refusing to post this.")) @@ -857,7 +856,7 @@ REPLY-JSON is the full JSON of the toot being replied to." (list 'display (format "%s/%s characters" (- (point-max) (cdr header-region)) - mastodon-toot--max-toot-chars))) + (number-to-string mastodon-toot--max-toot-chars)))) (add-text-properties (car visibility-region) (cdr visibility-region) (list 'display (format "Visibility: %s" -- cgit v1.2.3