aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.org3
-rw-r--r--lisp/mastodon-auth.el8
-rw-r--r--lisp/mastodon-client.el2
-rw-r--r--lisp/mastodon-discover.el2
-rw-r--r--lisp/mastodon-media.el21
-rw-r--r--lisp/mastodon-notifications.el22
6 files changed, 39 insertions, 19 deletions
diff --git a/README.org b/README.org
index ed080da..1dc23e1 100644
--- a/README.org
+++ b/README.org
@@ -61,7 +61,8 @@ I might add a few more features if the ones I added turn out to work ok. Possibl
- [X] voting on polls
- [X] delete and redraft toots
- [X] prevent loss of draft toots by the toot-send bug
-- [ ] display post visibility status
+- [X] fix scaling of images
+- [ ] display post visibility status in timelines
- better display of polls
- display number of boosts/faves in toot byline
- mention all thread participants in replies
diff --git a/lisp/mastodon-auth.el b/lisp/mastodon-auth.el
index 3f4ee7d..0b0c703 100644
--- a/lisp/mastodon-auth.el
+++ b/lisp/mastodon-auth.el
@@ -124,7 +124,7 @@ Reads and/or stores secrets in `MASTODON-AUTH-SOURCE-FILE'."
(json-read-from-string json-string))))
(defun mastodon-auth--access-token ()
- "If an access token for the current `mastodon-instance-url' exists in `mastodon-auth--token-alist', return it.
+ "If an access token for `mastodon-instance-url' is in `mastodon-auth--token-alist', return it.
Otherwise, generate a token and pass it to `mastodon-auth--handle-token-reponse'."
(if-let ((token (cdr (assoc mastodon-instance-url mastodon-auth--token-alist))))
@@ -133,7 +133,9 @@ Otherwise, generate a token and pass it to `mastodon-auth--handle-token-reponse'
(mastodon-auth--handle-token-response (mastodon-auth--get-token))))
(defun mastodon-auth--handle-token-response (response)
- "Add the token in RESPONSE returned by `mastodon-auth--get-token' in `mastodon-auth--token-alist'.
+ "Add token RESPONSE to `mastodon-auth--token-alist'.
+
+The token is returned by `mastodon-auth--get-token'.
Handle any errors from the server."
(pcase response
@@ -143,7 +145,7 @@ Handle any errors from the server."
mastodon-auth--token-alist)))
(`(:error ,class :error_description ,error)
- (error "mastodon-auth--access-token: %s: %s" class error))
+ (error "Mastodon-auth--access-token: %s: %s" class error))
(_ (error "Unknown response from mastodon-auth--get-token!"))))
diff --git a/lisp/mastodon-client.el b/lisp/mastodon-client.el
index 6439c0a..bdfbca9 100644
--- a/lisp/mastodon-client.el
+++ b/lisp/mastodon-client.el
@@ -94,7 +94,7 @@ Make `mastodon-client--fetch' call to determine client values."
(cdr mastodon)))
(defun mastodon-client ()
- "Return variable client secrets to use for the current `mastodon-instance-url'..
+ "Return variable client secrets to use for `mastodon-instance-url'.
Read plist from `mastodon-client--token-file' if variable is nil.
Fetch and store plist if `mastodon-client--read' returns nil."
diff --git a/lisp/mastodon-discover.el b/lisp/mastodon-discover.el
index 9c946be..8c47fbd 100644
--- a/lisp/mastodon-discover.el
+++ b/lisp/mastodon-discover.el
@@ -32,6 +32,8 @@
;;; Code:
+(declare-function discover-add-context-menu "discover")
+
(defun mastodon-discover ()
"Plug Mastodon functionality into `discover'."
(interactive)
diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el
index c3873df..b58eab6 100644
--- a/lisp/mastodon-media.el
+++ b/lisp/mastodon-media.el
@@ -87,7 +87,7 @@ m836fL6tra0jYkUiEb/fz8k3waLhikQiXq+3/NtiSayNjY1fv35BbVP5fN7pdG5tbR0Fy+12c360
Hxzz5a8KI6V6EMMwzo/2fZ2YTqej0WgqlSoVLqRUDwYCAajNiqKoYDBYphOLY8ViscItVG1VJEmu
r6+XeU8sjhWPxzc3N9sNiyAIDMOqS1YbDqwKx1YRrFQqxc7HJDRnpdPpUuEqgoVhWL0+i6hFz6tL
ja3iM4u1zw1qwhlfJihI0bfCNhxYe4NSqg3/A862hQAbrdtHAAAAAElFTkSuQmCC")
- "The PNG data for a generic 100x100 avatar")
+ "The PNG data for a generic 100x100 avatar.")
(defvar mastodon-media--generic-broken-image-data
(base64-decode-string
@@ -169,9 +169,11 @@ REGION-LENGTH is the length of the region that should be replaced with the image
(kill-buffer url-buffer)))))))
(defun mastodon-media--load-image-from-url (url media-type start region-length)
- "Takes a URL and MEDIA-TYPE and load the image asynchronously.
+ "Take a URL and MEDIA-TYPE and load the image asynchronously.
-MEDIA-TYPE is a symbol and either 'avatar or 'media-link."
+MEDIA-TYPE is a symbol and either 'avatar or 'media-link.
+START is the position where we start loading the image.
+REGION-LENGTH is the range from start to propertize."
;; TODO: Cache the avatars
(let ((image-options (when (or (image-type-available-p 'imagemagick)
(image-transforms-p)) ; inbuilt scaling in 27.1
@@ -222,17 +224,17 @@ found."
(list next-pos (+ next-pos 5) 'media-link)))))))
(defun mastodon-media--valid-link-p (link)
- "Checks to make sure that the missing string has
+ "Check if LINK is valid.
-not been returned."
+Checks to make sure the missing string has not been returned."
(and link
(> (length link) 8)
(or (string= "http://" (substring link 0 7))
(string= "https://" (substring link 0 8)))))
(defun mastodon-media--inline-images (search-start search-end)
- "Find all `Media_Links:' in the range from SEARCH-START to SEARCH-END
-replacing them with the referenced image."
+ "Find all `Media_Links:' in the range from SEARCH-START to SEARCH-END.
+Replace them with the referenced image."
(save-excursion
(goto-char search-start)
(let (line-details)
@@ -251,7 +253,7 @@ replacing them with the referenced image."
image-url media-type start (- end start))))))))
(defun mastodon-media--get-avatar-rendering (avatar-url)
- "Returns the string to be written that renders the avatar at AVATAR-URL."
+ "Return the string to be written that renders the avatar at AVATAR-URL."
;; We use just an empty space as the textual representation.
;; This is what a user will see on a non-graphical display
;; where not showing an avatar at all is preferable.
@@ -271,7 +273,8 @@ replacing them with the referenced image."
" ")))
(defun mastodon-media--get-media-link-rendering (media-url &optional full-remote-url)
- "Returns the string to be written that renders the image at MEDIA-URL."
+ "Return the string to be written that renders the image at MEDIA-URL.
+FULL-REMOTE-URL is used for `shr-browse-image'."
(concat
(propertize "[img]"
'media-url media-url
diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el
index 7524038..c917124 100644
--- a/lisp/mastodon-notifications.el
+++ b/lisp/mastodon-notifications.el
@@ -33,11 +33,18 @@
(autoload 'mastodon-tl--byline-author "mastodon-tl.el")
(autoload 'mastodon-tl--clean-tabs-and-nl "mastodon-tl.el")
(autoload 'mastodon-tl--content "mastodon-tl.el")
+(autoload 'mastodon-tl--byline "mastodon-tl.el")
+(autoload 'mastodon-tl--toot-id "mastodon-tl.el")
(autoload 'mastodon-tl--field "mastodon-tl.el")
(autoload 'mastodon-tl--has-spoiler "mastodon-tl.el")
(autoload 'mastodon-tl--init "mastodon-tl.el")
(autoload 'mastodon-tl--insert-status "mastodon-tl.el")
(autoload 'mastodon-tl--spoiler "mastodon-tl.el")
+(autoload 'mastodon-tl--property "mastodon-tl.el")
+(autoload 'mastodon-tl--find-property-range "mastodon-tl.el")
+(autoload 'mastodon-http--triage "mastodon-http.el")
+(autoload 'mastodon-http--post "mastodon-http.el")
+(autoload 'mastodon-http--api "mastodon-http.el")
(defvar mastodon-tl--display-media-p)
@@ -201,11 +208,16 @@
"Display the content and byline of timeline element TOOT.
BODY will form the section of the toot above the byline.
-AUTHOR-BYLINE is an optional function for adding the author portion of
-the byline that takes one variable. By default it is `mastodon-tl--byline-author'
-ACTION-BYLINE is also an optional function for adding an action, such as boosting
-favouriting and following to the byline. It also takes a single function. By default
-it is `mastodon-tl--byline-boosted'.
+
+AUTHOR-BYLINE is an optional function for adding the author
+portion of the byline that takes one variable. By default it is
+`mastodon-tl--byline-author'.
+
+ACTION-BYLINE is also an optional function for adding an action,
+such as boosting favouriting and following to the byline. It also
+takes a single function. By default it is
+`mastodon-tl--byline-boosted'.
+
ID is the notification's own id, which is attached as a property."
(let ((start-pos (point)))
(insert