diff options
-rw-r--r-- | lisp/mastodon-tl.el | 3 | ||||
-rw-r--r-- | lisp/mastodon.el | 20 |
2 files changed, 21 insertions, 2 deletions
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index e782631..2d2a588 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -88,7 +88,8 @@ (let* ((url (mastodon--api-for (concat "timelines/" timeline))) (tl-buff (concat "*mastodon-" timeline "*")) (tl-json (mastodon-http--get-json url))) - (mastodon-tl--render-timeline tl-buff tl-json))) + (mastodon-tl--render-timeline tl-buff tl-json) + (mastodon-mode))) (provide 'mastodon-tl) ;;; mastodon-tl.el ends here diff --git a/lisp/mastodon.el b/lisp/mastodon.el index 1bd1a66..abbff09 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -47,6 +47,10 @@ :group 'mastodon :type 'file) +(defvar mastodon-mode-map + (make-sparse-keymap) + "Keymap for `mastodon-mode'.") + (defvar mastodon--api-version "v1") ;; FIXME #25 @@ -62,7 +66,7 @@ (defun mastodon () (interactive) (require 'mastodon-tl) - (mastodon-tl--get "home")) + (mastodon-home)) ;;;###autoload (defun mastodon-toot () @@ -80,5 +84,19 @@ (progn (mastodon--store-client-id-and-secret))) +(define-derived-mode mastodon-mode nil "Mastodon" + "Major mode for Mastodon, the federated microblogging network." + :group 'mastodon + (let ((map mastodon-mode-map)) + (define-key map (kbd "F") (lambda () (interactive) (mastodon-tl--get "public"))) + (define-key map (kbd "H") (lambda () (interactive) (mastodon-tl--get "home"))) + (define-key map (kbd "L") (lambda () (interactive) (mastodon-tl--get "public?local=true"))) + (define-key map (kbd "n") #'mastodon-toot) + (define-key map (kbd "q") #'kill-this-buffer) + (define-key map (kbd "Q") #'kill-buffer-and-window) + (define-key map (kbd "T") (lambda () (interactive) + (let ((tag (read-string "Tag: "))) + (mastodon-tl--get (concat "tag/" tag))))))) + (provide 'mastodon) ;;; mastodon.el ends here |