aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mastodon.el')
-rw-r--r--lisp/mastodon.el51
1 files changed, 46 insertions, 5 deletions
diff --git a/lisp/mastodon.el b/lisp/mastodon.el
index a52bf41..49abe26 100644
--- a/lisp/mastodon.el
+++ b/lisp/mastodon.el
@@ -1,6 +1,7 @@
;;; mastodon.el --- Client for Mastodon -*- lexical-binding: t -*-
;; Copyright (C) 2017-2019 Johnson Denen
+;; Copyright (C) 2021 Abhiseck Paira <abhiseckpaira@disroot.org>
;; Author: Johnson Denen <johnson.denen@gmail.com>
;; Maintainer: Marty Hiatt <martianhiatus@riseup.net>
;; Version: 0.10.0
@@ -85,15 +86,46 @@
(autoload 'mastodon-tl--poll-vote "mastodon-http")
;; (autoload 'mastodon-toot--delete-and-redraft-toot "mastodon-toot")
(autoload 'mastodon-profile--view-bookmarks "mastodon-profile")
+(autoload 'mastoton-tl--view-filters "mastodon-tl")
;; (autoload 'mastodon-toot--bookmark-toot-toggle "mastodon-toot")
+(when (require 'lingva nil :no-error)
+ (autoload 'mastodon-toot--translate-toot-text "mastodon-toot"))
+
(defgroup mastodon nil
"Interface with Mastodon."
:prefix "mastodon-"
:group 'external)
(defcustom mastodon-instance-url "https://mastodon.social"
- "Base URL for the Masto instance from which you toot."
+ "Base URL for the Mastodon instance you want to be active.
+
+For example, if your mastodon username is
+\"example_user@social.instance.org\", and you want this account
+to be active, the value of this variable should be
+\"https://social.instance.org\".
+
+Also for completeness, the value of `mastodon-active-user' should
+be \"example_user\".
+
+After setting these variables you should restart Emacs for these
+changes to take effect."
+ :group 'mastodon
+ :type 'string)
+
+(defcustom mastodon-active-user nil
+ "Username of the active user.
+
+For example, if your mastodon username is
+\"example_user@social.instance.org\", and you want this account
+to be active, the value of this variable should be
+\"example_user\".
+
+Also for completeness, the value of `mastodon-instance-url'
+should be \"https://social.instance.org\".
+
+After setting these variables you should restart Emacs for these
+changes to take effect."
:group 'mastodon
:type 'string)
@@ -164,6 +196,10 @@ Use. e.g. \"%c\" for your locale's date and time format."
(define-key map (kbd "v") #'mastodon-tl--poll-vote)
(define-key map (kbd "k") #'mastodon-toot--bookmark-toot-toggle)
(define-key map (kbd "K") #'mastodon-profile--view-bookmarks)
+ (define-key map (kbd "I") #'mastodon-tl--view-filters)
+ (define-key map (kbd "G") #'mastodon-tl--get-follow-suggestions)
+ (when (require 'lingva nil :no-error)
+ (define-key map (kbd "s") #'mastodon-toot--translate-toot-text))
map)
"Keymap for `mastodon-mode'.")
@@ -201,12 +237,17 @@ Use. e.g. \"%c\" for your locale's date and time format."
(let* ((tls (list "home"
"local"
"federated"
- (concat (mastodon-auth--user-acct) "-statuses") ; profile
+ (concat (mastodon-auth--user-acct) "-statuses") ; own profile
"favourites"
"search"))
- (buffer (cl-some (lambda (el)
- (get-buffer (concat "*mastodon-" el "*")))
- tls))) ; return first buff that exists
+ (buffer (or (cl-some (lambda (el)
+ (get-buffer (concat "*mastodon-" el "*")))
+ tls) ; return first buff that exists
+ (cl-some (lambda (x)
+ (when
+ (string-prefix-p "*mastodon-" (buffer-name x))
+ (get-buffer x)))
+ (buffer-list))))) ; catch any other masto buffer
(if buffer
(switch-to-buffer buffer)
(mastodon-tl--get-home-timeline)