diff options
author | Johnson Denen <johnson.denen@gmail.com> | 2017-04-08 07:23:07 -0400 |
---|---|---|
committer | jdenen <Johnson.Denen@ascenaretail.com> | 2017-04-09 08:55:36 -0400 |
commit | 96f4b3627b3cbb38b28ba07206fb6196e71e212a (patch) | |
tree | d4229a2dbfa8890fbddf6990beefe5498d9c524f /lisp/mastodon-toot.el | |
parent | 1457f9f5cd435d395b474e1cdc0949e387e0665c (diff) |
Refactor authorization
Diffstat (limited to 'lisp/mastodon-toot.el')
-rw-r--r-- | lisp/mastodon-toot.el | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el new file mode 100644 index 0000000..82fac8c --- /dev/null +++ b/lisp/mastodon-toot.el @@ -0,0 +1,45 @@ +(require 'mastodon-auth) +(require 'mastodon-http) + +(defgroup mastodon-toot nil + "Capture Mastodon toots." + :group 'mastodon) + +(defun mastodon-new-toot () + (interactive) + (progn + (switch-to-buffer-other-window (get-buffer-create "*new toot*")) + (mastodon-toot-mode t))) + +(defun mastodon-toot--send () + (interactive) + (let ((toot (buffer-string)) + (endpoint (mastodon--api-for "statuses"))) + (progn + (kill-buffer-and-window) + (mastodon--http-post endpoint + (lambda (status) (switch-to-buffer (current-buffer))) ;; FIXME + `(("status" . ,toot) + ("visibility" . "public")) + `(("Authorization" . ,(concat + "Bearer " + (mastodon--access-token)))))))) + +(defun mastodon-toot--cancel () + (interactive) + (kill-buffer-and-window)) + +(defvar mastodon-toot-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-c") #'mastodon-toot--send) + (define-key map (kbd "C-c C-k") #'mastodon-toot--cancel) + map) + "Keymap for `mastodon-toot-mode'.") + +(define-minor-mode mastodon-toot-mode + "Minor mode to capture Mastodon toots." + :group 'mastodon-toot + :keymap mastodon-toot-mode-map + :global nil) + +(provide 'mastodon-toot) |