org-status
provides a simple mechanism for you to tweet from anywhere you have `org-mode’ or can use org-capture
. Currently, org-status
only supports a single Twitter account. Your tweets can be written and stored in any org-mode
file.
- Download and install
org-status.el
somewhere in yourload-path
. - Either download and install
org-status
’s dependency defhook or modify thedefhook
calls in theorg-status.el
so that it doesn’t calldefhook
. - Download, install, and configure
t
, following the instructions at http://bit.ly/KGlf2s. - In Emacs, customize the
org-status
group with the commandM-x customize-group
with the argument oforg-status
. You will likely need to change theorg-status-twitter-command
option to point to the installed path oft
. - Optionally, create an
org-capture
template in by modifying the variableorg-capture-templates
. - If you are unfamiliar with
org-capture
, you should probably glance at its Capture documentation.
Create one or more org-mode
file that ends with -status.org
. In the template above I use the file ~/Documents/my-status.org
. A tweet is any `org-mode’ heading that has a tag of TWEET
and the todo status of POST
.
* POST :TWEET: This is the minimum for a tweet.
In addition to the prescribed minimum above, you can add more data to the tweet heading. I like to add a brief title as a summary in addition to the date.
* POST Brilliant Title [2012-06-03 Sun 15:26] :TWEET: This is a much richer tweet entry.
In general, you can add any additional information to the org-mode
heading or to an org-mode
drawer associated with the heading.
This is the template that I use by adding it to org-capture-templates
:
("s" "Status"
entry (file+datetree "~/Documents/my-status.org")
"* POST %^{Title } %U :TWEET:\n%? %A\n" :prepend nil :empty-lines nil)
In addition to adding extra data in the headings, it stores tweets in an org-mode
datetree
. Very handy.
Once you’ve authored one or more tweets, you publish them by saving the file that contains them. Because tweeting involves talking to Twitter’s servers, saving the file can take several seconds for each tweet that must be published.
When everything works correctly, you will get a buffer that contains the output from t
. It tells you that the tweet was successful and gives you some information specific to t
. If there is a problem, you will receive an error message.
While I’m certain there are many more possible errors, the only ones that I’ve seen are:
- A tweet greater than 140 characters. If this happens, shorten your tweet.
- A network error if
t
can’t connect to the Twitter servers. If this happens, try again to see if it is just a short-term problem with Twitter. If not, fix your network problems. - A duplicate tweet error message from
t
ift
feels that you are duplicating a tweet. When this happens, the first thing you should do is confirm that your tweet is a duplicate. If it is not a duplicate, file a bug on t’s issue page. If it is a duplicate tweet, then you must manually change thePOST
todo status to theDONE
todo status. You can simply edit the tweet’s heading or useorg-todo
, typically\C-c\C-t
, to change the heading to done.
I encourage you to file bugs, questions, or suggestions on org-status’s issue page. No promises, but I’ll do the best that I can.
Assuming I find the time and motivation, I would like to add more functionality to org-status
. For the moment, the top of my list of new features are:
- Add support for updating Facebook status.
- Add support for updating Facebook Pages.
- Add support for multiple Twitter accounts.
Please feel free to vote for your favorites or ask for other features using org-status’s issue page.
I would also appreciate pointers to any other CLIs for social websites. My guess is that once I’ve added a second service to org-status
, adding additional services will be easy.
org-mode
encourages and facilitates deeply nested outlines. I think that’s great. But I would strongly recommend against making a tweet anything other than a leaf node. If you’re lucky, org-status
or t
will fail on the submit because your tweet is too long. The remaining possibilities seem likely to involve the rushed deletion of tweets. Never a pretty sight.
While org-status
allows you to author, edit, post, and archive your tweets from within org-mode
your tweet should be plain text and not contain any org-mode markup. org-mode
’s automatic highlighting of URLs within your tweet is fine provided that they are just plain URLs.
This tweet will look weird on Twitter [http://bit.ly/Le5uBP].
And this one will look [[http://bit.ly/Le5Zvu][ever weirder]].
But this tweet will look great http://bit.ly/Le50M2
Being as I haven’t tested for tweets that have newlines in them, you should use them at your own risk. Auto-filling is fine but inserting newlines is not.
While not required for tweeting, you may find Emacs’ bitly extension useful.