From 48fcd12d9d753e99e7d22ba3f1e6bc2173ac482e Mon Sep 17 00:00:00 2001 From: Johnson Denen Date: Fri, 14 Apr 2017 15:23:24 -0400 Subject: Add major mode - `mastodon' opens home buffer in new major mode - `F' switches to your federated timeline - `H' switches to your home timeline - `L' switches to your local timeline - `n' opens a `mastodon-toot' buffer - `q' quits by killing the buffer - `Q' quits by killing both the buffer and the window - `T' prompts your for a tag and then opens its timeline --- lisp/mastodon.el | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'lisp/mastodon.el') 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 -- cgit v1.2.3