(require 'twittering-mode) (defvar twittering-fake-status-file (concat user-emacs-directory "twittering-fake-status")) (defun twittering-edit-post-status--fake () (interactive) (twittering-edit-fake-status)) (defun twittering-edit-fake-status () (interactive) (append-to-file (concat (twittering-edit-extract-status) "\n") nil twittering-fake-status-file) (twittering-edit-close)) (defun twittering-post-this-line () (interactive) (twittering-call-api 'update-status `((status . ,(buffer-substring-no-properties (point-at-bol) (point-at-eol)))))) (defun twittering-post-this-line-or-quit () (interactive) (if (eobp) (quit-window t) (twittering-post-this-line) (forward-line 1))) (defun twittering-open-fake-statuses () (interactive) (switch-to-buffer "*twittering-fake-status*") (twittering-fake-status-mode) (erase-buffer) (condition-case _ (insert-file-contents twittering-fake-status-file) (file-error (message "No tweets"))) (ignore-errors (delete-file twittering-fake-status-file))) (define-derived-mode twittering-fake-status-mode text-mode "TwFake" (define-key twittering-fake-status-mode-map (kbd "C-c C-c") 'twittering-post-this-line-or-quit)) (define-key twittering-edit-mode-map (kbd "C-c C-c") 'twittering-edit-post-status--fake)