from emacsOk. Mainly because I am thinking about how I start creating a buzz about hapispace I'm going to twitter
Shut up at the back that person who says I'm always doing that. You think you're funny. But you're not.
Anyway... I needed some elisp, obviously.
Here's my latest code:
;; Copyright (C) 2007 by Tapsell-Ferrier Limited
;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version.
;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301 USA
(require 'json)
(defvar twitter-usernamepassword-history nil)
(defun twitter (msg usernamepassword &optional imagename)
(interactive
(if current-prefix-arg
(append (twitter-ask)
(list (read-file-name "imagename: " "~/twitter/")))
(twitter-ask)))
;; Set the image (maybe)
(if imagename
(let ((resize-mini-windows nil))
(shell-command-to-string (concat "curl -L -s "
(format "-u %s " usernamepassword)
(format "-F \"user[profile_image]=@%s\" " (expand-file-name imagename))
"http://twitter.com/account/picture"))))
;; Send the entry
(let ((resize-mini-windows nil)
(twitter-return-value
(shell-command-to-string (concat (format "curl -s -u %s " usernamepassword)
(format "-d \"status=%s\" " msg)
"http://twitter.com/statuses/update.json"))))
(let ((stats (json-read-from-string twitter-return-value)))
(message "%s" stats)
(display-message-or-buffer (format "Created at: %s" (cdr (assoc 'created_at stats)))))))
(defun twitter-ask ()
(list
(read-from-minibuffer "status: ")
(read-from-minibuffer "username:password: "
(car twitter-usernamepassword-history)
nil nil
'twitter-usernamepassword-history)))
;; End
To use this you'll need curl installed and Edward O'Connor's json
Unfortunately, twitter doesn't store profile images for every entry. But the above code still let's you change your twitter image if you're doing something different.
I am mainly either:

So that's what I have.
We have nothing to lose but a crappy web front end.
All those who twitter with emacs get in touch with me. I'd be interested to hear your thoughts.
An rcirc plugin seems like a sensible first step.
Nic Ferrier