Microblogging adventures pt 2: Alfred post to WordPress for micro.blog

I’ve been beta testing micro.blog. There is a new page here for status type posts, these get sent to micro.blog/johnjohnston and to twitter.
This has renewed my interest in finding different ways to post to the blog especially for short posts that would have previously gone straight to twitter.

On iOS there is the nice micro.blog app, editorial or drafts and workflow. On my mac I’ve used AppleScript to post to blogs before, but needed to figure out how to add a category for the micro blog. I also wanted to not have a title, use the format of status and the note kind. The categories and kinds were the tricky bit, they need to be in a strut within a strut in the datas sent to the xml-rpc end point (I am a wee bit wobbly on the vocabulary here).
The following script does the trick. It is fairly limited as I hard code various things into it:

user name
password – this is probably not the greatest idea.
the category micro
the post format and kind
an empty title

It should be obvious how to change most of these things and make the script fit other needs or to generalise it.
I also wanted to be able to post from any application, so this script is for Alfred. In a workflow this is triggered by a hotkey which sends the currently selected text to the script. The script passes on the returned info, the post id, to a notification.
So to post a quick stratus method I select some text hit cmd-alt-control-m and that test gets posted here.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

on alfred_script(q)

set myBlogUsername to "USERNAME"

set myBlogPass to "PASSWORD"

set cat to {category:{"Micro"}, kind:{"note"}}

set poststrut to {post_type:"post", post_status:"publish", post_format:"status", post_title:"", post_content:q, terms_names:cat, comment_status:"open"}

tell application "http://example.com/xmlrpc.php"

set myPosts to call xmlrpc {method name:"wp.newPost", parameters:{"1", myBlogUsername, myBlogPass, poststrut}}

return myPosts

end tell

end alfred_script

view raw

postto-micro.blog.scpt

hosted with ❤ by GitHub

Of interest to micro.blogista is the comment_status:"open" bit. I am thinking of all sorts of ways to extend this, perhaps for use in FastScripts to grab the selecting and link from Safari. I’d have probably used FastScripts for this, but I can’t figure out how to get the selection from any text in plain AppleScript, I needed Alfred for that.